Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master

This branch is 59 commits ahead, 1 commit behind jimmydo:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.

Assert Runner

Author: Rich Hildred inspired by Gabriel Llamas' answer to this stack overflow question.

License: MIT

Really light weight test runner based on node's builtin assert.


npm install assert-runner

Given a class TestClass under test:

var Toolbox = require('js-toolbox');

var TestClass = Toolbox.Base.extend({
    constructor: function(){
        return this;
    synchronous: function(req, res){
        res.end("synchronous test");
    asynchronous: function(req, res, callback){
        res.end("asynchronous test");
        if(typeof callback != 'undefined') callback();

module.exports = TestClass;

TestClass can be tested using the following code (in test.js):

var TestRunner = require('TestRunner'),
assert = require('assert'),
TestClass = require('./classes/TestClass.js');

var oTest = null;
var tests = {
        "TestClass constructor" : function(){
            oTest = new TestClass();
            assert(oTest != null);
        "TestClass synchronous": function(){
            var oReq = new TestRunner.TestRequest();
            var oResp = new TestRunner.TestResponse();
            oTest.synchronous(oReq, oResp);
            assert(oResp.sBody == "synchronous test");
        "Test asynchronous": function(done){
            var oReq = new TestRunner.TestRequest();
            var oResp = new TestRunner.TestResponse();
            oTest.asynchronous(oReq, oResp, function(){
                assert(oResp.sBody == "asynchronous test");


new TestRunner(tests).again(0);

If we run node test.js the output produced will be:

Passed Test: "TestClass constructor" 1 of 3
Passed Test: "TestClass synchronous" 2 of 3
Passed Test: "Test asynchronous" 3 of 3

Depends on:

Something went wrong with that request. Please try again.