Browse Source

doc: expand common module material in test guide

Provide a little more information about the `common` module. This
doesn't really provide much that wasn't already there, but hopefully
makes some things a bit more explicit for first-time readers.

PR-URL: https://github.com/nodejs/node/pull/10251
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Italo A. Casas <me@italoacasas.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
v6
Rich Trott 8 years ago
parent
commit
31cb9a6170
  1. 19
      doc/guides/writing-tests.md

19
doc/guides/writing-tests.md

@ -19,7 +19,6 @@ Tests can be added for multiple reasons:
- When fixing regressions and bugs. - When fixing regressions and bugs.
- When expanding test coverage. - When expanding test coverage.
## Test structure ## Test structure
Let's analyze this very basic test from the Node.js test suite: Let's analyze this very basic test from the Node.js test suite:
@ -55,17 +54,22 @@ Let's analyze this very basic test from the Node.js test suite:
const common = require('../common'); const common = require('../common');
``` ```
These two lines are mandatory and should be included on every test. The first line enables strict mode. All tests should be in strict mode unless
The `common` module is a helper module that provides useful tools for the tests. the nature of the test requires that the test run without it.
If for some reason, no functionality from `common` is used, it should still be
included like this: The second line loads the `common` module. The `common` module is a helper
module that provides useful tools for the tests.
Even if no functions or other properties exported by `common` are used in a
test, the `common` module should still be included. This is because the `common`
module includes code that will cause tests to fail if variables are leaked into
the global space. In situations where no functions or other properties exported
by `common` are used, it can be included without assigning it to an identifier:
```javascript ```javascript
require('../common'); require('../common');
``` ```
Why? It checks for leaks of globals.
**Lines 4-5** **Lines 4-5**
```javascript ```javascript
@ -76,7 +80,6 @@ Why? It checks for leaks of globals.
A test should start with a comment containing a brief description of what it is A test should start with a comment containing a brief description of what it is
designed to test. designed to test.
**Lines 7-8** **Lines 7-8**
```javascript ```javascript

Loading…
Cancel
Save