Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
lib
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Readme.md

utest

Build Status

The minimal unit testing library.

Why yet another test library?

I wanted something simple, that just does unit tests (no async) and where each test is a standalone UNIX program. Now it exists.

How do I run async tests?

Currently there is only one sane way: Do not use a framework. Instead use one file per test.

If that becomes an issue, you should write more unit tests. (It is not a unit test if it does I/O).

Install

npm install utest

Usage

Running a test with utest is very simple:

var test   = require('utest');
var assert = require('assert');

test('Number#toFixed', {
  'returns a string': function() {
    assert.equal(typeof (5).toFixed(), 'string');
  },

  'takes number of decimal places': function() {
    assert.equal((5).toFixed(1), '5.0');
  },

  'does not round': function() {
    assert.equal((5.55).toFixed(1), '5.5');
  },
});

It is also possible to define a before/after method:

var test   = require('utest');
var assert = require('assert');

test('Date', {
  before: function() {
    this.date = new Date;
  },

  after: function() {
    this.date = null;
  },

  'lets you manipulate the year': function() {
    this.date.setYear(2012);
    assert.equal(this.date.getFullYear(), 2012);
  },

  'can be coerced into a number': function() {
    assert.equal(typeof +this.date, 'number');
  },
});

Last but not least, you can run individual tests by prefixing them with an exclamation mark. This is useful when putting debug statements into the subject under test:

var test   = require('utest');
var assert = require('assert');

test('MyTest', {
  '!will be executed': function() {
    // ...
  },

  'will not be exectuted': function() {
    // ...
  },
});

Future Features

I want to keep this library as minimal as possible, but I do consider the addition of the following features:

  • Nested test cases
  • TAP output (if TAP=1 in the environment, switch to TapReporter class)
  • Leak detection (automatically add a final test that fails if there are global leaks).

License

This module is licensed under the MIT license.

About

The minimal unit testing library.

Resources

Packages

No packages published
You can’t perform that action at this time.