Simple JavaScript test suite API
JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src
tasks
test
.gitignore
GruntFile.js
README.md
aok.js
aok.min.js
package.json

README.md

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/catch to test if fn 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 stack to count fails until limit. (example)
  • ⇒ number

aok.perform(trials, fn)

  • Test how many milliseconds it takes fn to run trials times.
  • ⇒ number

aok.race(trials, rivals)

  • Test how many milliseconds it takes each rival to run trials times.
  • ⇒ Array

aok.result(object, key|fn)

  • Get object[key] or its method's result if callable.
  • ⇒ *

aok.explain(item?)

  • Represent item (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:extras

Resources

Developers

Contribute edits to /src or report issues

$ npm install       # install dependencies
$ grunt jshint:sub  # lint sub dirs
$ grunt aok         # run tests

Builds have +timestamp in the version number and are made later via grunt.

Fund

Tip the developer =)

License

MIT