doc: add countdown module to writing tests guide

PR-URL: https://github.com/nodejs/node/pull/17201
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Jon Moss <me@jonathanmoss.me>
This commit is contained in:
Bamieh 2017-12-12 22:43:00 +02:00 committed by Jon Moss
parent 3a53f7cc74
commit cf76176476

View File

@ -138,11 +138,15 @@ platforms.
### The *common* API
Make use of the helpers from the `common` module as much as possible.
Make use of the helpers from the `common` module as much as possible. Please refer
to the [common file documentation](https://github.com/nodejs/node/tree/master/test/common)
for the full details of the helpers.
One interesting case is `common.mustCall`. The use of `common.mustCall` may
avoid the use of extra variables and the corresponding assertions. Let's explain
this with a real test from the test suite.
#### common.mustCall
One interesting case is `common.mustCall`. The use of `common.mustCall` may avoid
the use of extra variables and the corresponding assertions. Let's explain this
with a real test from the test suite.
```javascript
'use strict';
@ -194,6 +198,23 @@ const server = http.createServer(common.mustCall(function(req, res) {
});
```
#### Countdown Module
The common [Countdown module](https://github.com/nodejs/node/tree/master/test/common#countdown-module) provides a simple countdown mechanism for tests that
require a particular action to be taken after a given number of completed tasks
(for instance, shutting down an HTTP server after a specific number of requests).
```javascript
const Countdown = require('../common/countdown');
const countdown = new Countdown(2, function() {
console.log('.');
});
countdown.dec();
countdown.dec(); // The countdown callback will be invoked now.
```
### Flags