npm install tart-nodeunitAdapter for nodeunit testing (tart module)
Adapter for nodeunit testing (tart module)
* Usage
* Tests
* Documentation
* Sources
To run the below example run:
npm run test
``javascript
"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
* tart.testing(test)
* testing.sponsor(behavior)
* [testing.dispatch(\[options\])](#testingdispatchoptions)
* test: _Object_ nodeunit test object.sponsor
* Return: _Object_ The testing control object.
* : _Function_ function (behavior) {} A capability to createdispatch
new actors.
* : _Function_ function ([options]) {} Function to call totrue
dispatch events. Returns when there are no more events.tracing
* : _Object_ Tracing control object.
Returns the testing control object.
* behavior: _Function_ function (message) {} Actor behavior to invoke every time an actor receives a message.function (message) {}
* Return: _Function_ 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.
`javascript
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
: _Function_ function (exception){} Function called to report exceptions from actor behavior _(Example: function (exception){ / ignore exceptions */ })_.count
* : _Number_ _(Default: undefined)_ Maximum number of events to dispatch,undefined
or unlimited if .true
* Return: _Boolean_. if event queue is exhausted, otherwise false.
Dispatch events.
If options.count is specified, dispatch at most options.count events.true
When the event queue is exhausted, return .false
Otherwise return .options.fail()
If an actor behavior throws an exception, is called to handle it.options.fail()
The default implementation of testing.dispatch()
throws the exception out of .
`javascript
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();
};
``