0.1.1 • Published 12 years ago
tart-nodeunit v0.1.1
tart-nodeunit
Adapter for nodeunit testing (tart module)
Contributors
Overview
Adapter for nodeunit testing (tart module)
Usage
To run the below example run:
npm run test"use strict";
var adapter = require('../index.js');
var test = module.exports = {};
test["example from tart-tracing exercises all actor primitives"] = function (test) {
test.expect(4);
var testing = adapter.testing(test);
var oneTimeBeh = function oneTimeBeh(message) {
test.equal(message, 'bar');
var child = this.sponsor(createdBeh); // create
child('foo'); // send
this.behavior = becomeBeh; // become
};
var createdBeh = function createdBeh(message) {
test.equal(message, 'foo');
};
var becomeBeh = function becomeBeh(message) {
test.equal(message, 'baz');
};
var actor = testing.sponsor(oneTimeBeh); // create
actor('bar'); // send
actor('baz'); // send
test.ok(testing.dispatch());
test.done();
};Tests
npm testDocumentation
tart-nodeunit is an adaptor for running nodeunit tests.
Public API
tart.testing(test)
test: Object nodeunit test object.- Return: Object The testing control object.
sponsor: Functionfunction (behavior) {}A capability to create new actors.dispatch: Functionfunction ([options]) {}Function to call to dispatch events. Returnstruewhen there are no more events.tracing: Object Tracing control object.
Returns the testing control object.
testing.sponsor(behavior)
behavior: Functionfunction (message) {}Actor behavior to invoke every time an actor receives a message.- Return: Function
function (message) {}Actor reference in form of a capability that can be invoked to send the actor a message.
Creates a new (traceable) actor and returns the actor reference in form of a capability to send that actor a message.
var adapter = require('../index.js');
var test = module.exports = {};
test["sponsor creates an actor"] = function (test) {
test.expect(2);
var testing = adapter.testing(test);
var actor = testing.sponsor(function (message) { // create
test.ok(message);
});
actor(true); // send
test.ok(testing.dispatch());
test.done();
};testing.dispatch([options])
options: Object (Default:{ fail: function(exception) { throw exception; } }) Optional overrides.fail: Functionfunction (exception){}Function called to report exceptions from actor behavior (Example:function (exception){ /* ignore exceptions */ }).count: Number (Default:undefined) Maximum number of events to dispatch, or unlimited ifundefined.
- Return: Boolean.
trueif event queue is exhausted, otherwisefalse.
Dispatch events.
If options.count is specified, dispatch at most options.count events.
When the event queue is exhausted, return true.
Otherwise return false.
If an actor behavior throws an exception,
options.fail() is called to handle it.
The default implementation of options.fail()
throws the exception out of testing.dispatch().
var adapter = require('../index.js');
var test = module.exports = {};
test["dispatch delivers limited number of events"] = function (test) {
test.expect(4);
var testing = adapter.testing(test);
var actor = testing.sponsor(function (message) { // create
test.ok(message);
this.self(message + 1); // send
});
actor(1); // send
var done = testing.dispatch({ count: 3 });
test.strictEqual(done, false);
test.done();
};Sources
0.1.1
12 years ago