austere-tester
v1.0.2
Published
A humble tool to aid with testing JavaScript code
Downloads
4
Readme
austere-tester
A humble tool to aid with testing JavaScript code.
- Works in Node.js and in browsers.
- Runs synchronous and asynchronous tests with configurable timeouts, in series and in parallel.
- Has first-class Promise support.
- Works with any assertion library.
- Provides test execution metrics.
- No magic - no global variables, preserves tested functions context.
- No bloat - zero dependencies, simple API, ~ 100 NCLOC.
Installation and usage
Requirements
The environment must provide a native or shimmed implementation of the following ES6 and ES5 features:
- Promise
- Object.assign
- Array.prototype.find
- Array.prototype.map
For native implementation, it translates to Node.js >= 4.0 and most modern browsers (excluding IE).
Apply your favourite shims to use the module in older environments.
Installation
$ npm install austere-tester --save-dev
To use in a browser, include ./index.js
via the script
tag - it will make AustereTester
available in the global scope.
Alternatively, use Browserify or webpack or other CommonJS bundler.
Workflow
austere-tester
is a lightweight utility that helps to run tests.
It does not dictate how you should write and arrange them.
- Write down a set of functions that test your code.
Make them
throw
anError
when test is failing - either with a plainthrow new Error('Message');
or with any assertion library. - Register those functions with
austere-tester
. - Ask it to run registered functions.
- Check output for errors.
Examples
// ./examples/basic.js:
// Create an instance of the module:
var AustereTester = require('austere-tester');
var tester = new AustereTester();
// Register a test procedure:
tester.plan('basic test', function() {
return 'passing';
});
// Run it:
tester.run('basic test');
$ node examples/basic
[austere-tester] run PASSED in 0 ms - basic test
For a more complex example demonstrating async tests and serial and parallel running, please see ./examples/complex.js and API documentation.
API
Described here.