From fe4990179532264cbbe1d1d4513bf106e4f02037 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Tue, 13 Dec 2016 09:12:05 -0800 Subject: [PATCH] doc: expand common module material in test guide MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-By: Anna Henningsen Reviewed-By: Evan Lucas Reviewed-By: Italo A. Casas Reviewed-By: Michaƫl Zasso Reviewed-By: Colin Ihrig Reviewed-By: Luigi Pinca --- doc/guides/writing-tests.md | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/doc/guides/writing-tests.md b/doc/guides/writing-tests.md index d00be9cdbcc4c6..d628e3f6f5873c 100644 --- a/doc/guides/writing-tests.md +++ b/doc/guides/writing-tests.md @@ -19,7 +19,6 @@ Tests can be added for multiple reasons: - When fixing regressions and bugs. - When expanding test coverage. - ## Test structure 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'); ``` -These two lines are mandatory and should be included on every test. -The `common` module is a helper module that provides useful tools for the tests. -If for some reason, no functionality from `common` is used, it should still be -included like this: +The first line enables strict mode. All tests should be in strict mode unless +the nature of the test requires that the test run without it. + +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 require('../common'); ``` -Why? It checks for leaks of globals. - **Lines 4-5** ```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 designed to test. - **Lines 7-8** ```javascript