aok
Extensible JavaScript test suite module
API (1.9)
aok() → aok instance
Syntaxes
Properties
- id: identifier or name for the test (defaults to a positive integer)
- test: result or callback (called in the instance's scope)
- pass: message or callback (default: "ok")
- fail: message or callback (default: "FAIL")
- handler: defaults to
aok.prototype.handler - express: defaults to
aok.prototype.express - explain: defaults to
aok.prototype.explain - run: defaults to
aok.prototype.run - cull: defaults to
aok.prototype.cull - init: defaults to
aok.prototype.init
Verbose syntax
aok(object)
aok({
id: 'example',
test: function() {
return 'example' === this.id;
}
});Anonymous syntax
aok(test) for non-object tests
aok(true);
aok(aok instanceof aok);
aok(function() {
return isFinite(this.id);
});Pair syntax
aok(id, test) 1.8+
aok('example', true);
aok('example', function() {
return true;
});Idle syntax
Calling aok() without arguments creates an idle instance that can manually be run later.
var o = aok();
o.test = true;
o.run();Console methods
uses native console where available
aok.log(message)aok.info(message)aok.warn(message)aok.error(message)aok.assert(expression, message)1.6+aok.trace()aok.clear()1.7+
Utilities
aok.can(fn)
- Get a new function that uses
try/catchto test if <var>fn</var> can run. - ⇒ Function (⇒ boolean)
aok.pass(stack, fn, scope?, limit?)
- Iterate stack to count passes until limit. (example)
- ⇒ number
aok.fail(stack, fn, scope?, limit?)
- Iterate <var>stack</var> to count fails until <var>limit</var>. (example)
- ⇒ number
aok.perform(trials, fn)
- Test how many milliseconds it takes <var>fn</var> to run <var>trials</var> times.
- ⇒ number
aok.race(trials, rivals)
- Test how many milliseconds it takes each rival to run <var>trials</var> times.
- ⇒ Array
aok.result(object, key|fn)
- Get
object[key]or its method's result if callable. - ⇒ *
aok.explain(item?)
- Represent <var>item</var> (or self) as a string.
- ⇒ string
grunt aok
aok 1.5+ includes a simple grunt task for running tests via grunt
Configure files to require
grunt.initConfig({
aok: {
test: ['./test/'],
extras: ['./test/extras']
}
});Load task 'aok'
grunt.loadNpmTasks('aok');Run 'aok' tasks
$ grunt aok
$ grunt aok:test
$ grunt aok:extrasResources
- See a universal GruntFile and test dir for a solid setup
- See test dirs in ryanve packages for examples
Developers
Contribute edits to /src or report issues
$ npm install # install dependencies
$ grunt jshint:sub # lint sub dirs
$ grunt aok # run testsBuilds have +timestamp in the version number and are made later via grunt.