terst

A JavaScript testing component with a terse syntax.

npm install terst
1 downloads in the last day
3 downloads in the last week
34 downloads in the last month

terst

A JavaScript testing component with a terse syntax. Supported in both Node.js and the browser.

Why?

Take a look at some of the popular JavaScript assertion/testing libraries, most of them are overly verbose.

examples from should.js docs:

var user = {
    name: 'tj'
  , pets: ['tobi', 'loki', 'jane', 'bandit']
};

user.should.have.property('name', 'tj');
user.should.have.property('pets').with.lengthOf(4);

or...

T (user.name)
EQ (user.name, 'tj')
EQ (user.pets.length, 4)

how about from expect.js:

expect(window.r).to.be(undefined);
expect(5).to.be.a('number');
expect([]).to.be.an('array');

or..

T (typeof window == 'undefined')
T (typeof 5 == 'number')
T (Array.isArray([]))

Don't even get me started on Node.js assert.

Terst has three main advantages:

  1. There are only five methods to remember. You aren't second guessing what each method really does or constantly referring to the documentation.
  2. Your eyes can quickly scan down the left side of your tests to quickly interpret what each test should do. Terst forces you to be very explicit.
  3. It's very light weight.

Install

Node.js/Browserify

npm install --save terst

Component

component install jprichardson/terst

Script

<script src="/path/to/terst.js"></script>

Methods

T (value, [msg])

Asserts if the value is truthy.

F (value, [msg])

Asserts if the value is falsey.

EQ (val1, val2, [msg])

Asserts if val1 strictly equals val2.

NEQ (val1, val2, [msg])

Asserts if val does not strictly equal val2.

APPROX (value, expected, delta, [msg])

Asserts if the value is within +- the delta.

THROWS (fun)

Asserts if a function throws i.e. if it does not throw, there is an error.

NOTE: For descriptive errors, you can set terse.autoMsg = true. It's experimental only.

License

(MIT License)

Copyright 2013, JP Richardson jprichardson@gmail.com

npm loves you