Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Beautiful assertions without verbosity!
JavaScript Makefile
Branch: master
Failed to load latest commit information.
lib Name changes.
macros Name changes.
test Name changes.
.gitignore New design.
.npmignore New design.
.travis.yml
LICENCE
Makefile Name changes.
README.md Name changes.
jsdoc.conf.json Name changes.
package.json Updates some packages.

README.md

specify-assertions

Build status NPM version Dependencies status Licence Stable API

Beautiful assertion library.

Philosophy

  • Straight-forward: Alright should get out of your way and just let you define your tests with what you already know: plain JavaScript.

  • No verbosity: We don't want expect(x).to.eventually.be.boring...

  • Helpful error messages: When things go wrong, Alright should do its best to show you exactly what's wrong and how you might fix it.

  • Test-framework agnostic: Alright should work with anything that expect Errors to be thrown when assertions fail.

  • Extensible: It should be easy to extend the built-in assertions with plain JavaScript.

  • Work with older Browsers: Some people still need to support old IEs, Alright should work on them.

Example

Using the Sweet.js macros:

var _ = require('specify-assertions')

// simple assertions
add(a)(b) => a + b
add(a)(b) => not a + b

// anything goes assertions
add(a)(b) should _.equal(a + b)
add(a)(b) should not _.equal(a + b)

// asynchronous assertions with pure fantasy-land monads, or Promises/A+
asyncAdd(a)(b) will _.equal(a + b)
asyncAdd(a)(b) will not _.equal(a + b)

Using vanilla JavaScript:

var _ = require('specify-assertions')

// Use verify for synchronous assertions
_.verify(add(a)(b))(_.equals(a + b))
_.verify(add(a)(b))(_.not(_.equals(a + b)))

// use verifyFuture for monadic Futures, and verifyPromise for Promises/A+
_.verifyMonad(asyncAdd(a)(b))(_.equals(a + b))

Installing

$ npm install specify-assertions

Tests

$ npm install
$ make test

Documentation

$ npm install
$ make documentation

Platform support

This library assumes an ES5 environment, but can be easily supported in ES3 platforms by the use of shims. Just include [es5-shim][] :)

Licence

Copyright (c) 2013-2014 Origami Tower.

This module is part of the Specify framework, and released under the MIT licence.

Something went wrong with that request. Please try again.