emile
Version:
no-thrills stand-alone CSS animation JavaScript framework
66 lines (46 loc) • 1.9 kB
Markdown
Sink Test
---------
An Asynchronous JavaScript Unit Testing Framework designed to run headless, or in the browser.
Sink test is used to test JavaScript that is run asynchronously whereby you tell the test a number of expectations and Sink will tell you if they each pass successfully.
It is used in other projects of mine such as [$script.js](http://github.com/polvero/script.js) and [Kizzy](http://github.com/polvero/kizzy) due to the async nature of dynamic script loading ($script) and asserting expired data from local storage (Kizzy).
How to write a Sink test
------------------------
test('should have foo', 1, function() {
$.ajax('/foo', function(resp) {
ok(resp.stat == '200');
});
});
Loading a suite of tests
------------------------
The above example illustrates the basic syntax of a single test, however loading your tests is done via the *sink* module which exports the test and ok methods. See the example below:
sink('my module', function(test, ok, before, after) {
before(function () {
// run this before every test
});
after(function () {
// run this after every test
});
test('should have foo', 2, function() {
ok(true, 'this is basically true');
ok(1 == 1, 'also true for you math majors');
});
});
start(); // start all test modules
Browser support
---------------
Any browser that supports JavaScript as well as Headless via command line with Node. (see below)
// tests.js
/** this snippet can be found in src/headless.js */
var sink = require('path/to/sink');
var start = sink.start;
sink = sink.sink;
sink('some module', function (test, ok) {
// write tests
});
sink('another module', function (test, ok) {
// write tests
});
start();
in your terminal
% node path/to/my/tests.js
Happy testing!