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 = ;var tester = ; // Register a test procedure:tester; // Run it:tester;
$ 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.