Adapter for nodeunit
testing (tart module)
Adapter for nodeunit
testing (tart module)
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();
};
npm test
tart-nodeunit
is an adaptor for running nodeunit
tests.
Public API
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. Returnstrue
when there are no more events.tracing
: Object Tracing control object.
Returns the testing control object.
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();
};
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.
true
if 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();
};