Skip to content
This repository has been archived by the owner on May 23, 2022. It is now read-only.
/ specify Public archive

Automated unit and property-based testing framework for JavaScript


Notifications You must be signed in to change notification settings


Folders and files

Last commit message
Last commit date

Latest commit



22 Commits

Repository files navigation

Specify logo

Build status NPM version Dependencies status Licence Stable API

Specify is a cross-platform library for defining and running tests using a BDD style. It supports pluggable assertions, custom reporters, and custom interfaces.


( TBD )


The officially supported way of getting Specify is through npm:

$ npm install specify-framework


If you don't have npm, you'll need to install Node.js and npm in your system before installing Specify.

A tool like Browserify or Webpack can be used to run Specify in platforms that don't implement Node-style modules, like the Browser.


( TBD )

Why not (insert-popular-testing-library-here)?

Mocha, and other popular BDD testing frameworks, have been designed with a particular environment in mind (Node for Mocha, Browser for Jasmine), so while they can be extended, it's often awkward to use them in different environments. In particular, running Mocha under CIs like Testling requires specific Mocha extensions.

Furthermore, most popular testing frameworks and libraries (like Mocha and Tape) are designed for asynchronous testing with callbacks. This isn't a deal breaker, but it's a minor inconvenience since one would need to provide wrappers for using Promises or Tasks. Specify uses Tasks, and provides wrappers for other styles out of the box, which makes just writing tests simpler.

Supported platforms

Specify is supported in all platforms that support ECMAScript 5.

For platforms that don't support ECMAScript 5, (like IE8 and 9) the es5-shim library can be used to provide the additional runtime support.


If you think you've found a bug in the project, or want to voice your frustration about using it (maybe the documentation isn't clear enough? Maybe it takes too much effort to use?), feel free to open a new issue in the Github issue tracker.

Pull Requests are welcome. By submitting a Pull Request you agree with releasing your code under the MIT licence.

You can contact the author over email, or Twitter.

Note that all interactions in this project are subject to Origami Tower's Code of Conduct.


Specify is copyright (c) Quildreen Motta 2014-2016, and released under the MIT licence. See the LICENCE file in this repository for detailed information.


Automated unit and property-based testing framework for JavaScript







No releases published