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


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

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 )

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


No packages published