Automated unit and property-based testing framework for JavaScript
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
docs
.gitignore
.gitmodules
LICENCE
README.md
specify-logo.png

README.md

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.

Example

( TBD )

Installing

The officially supported way of getting Specify is through npm:

$ npm install specify-framework

NOTE

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.

Documentation

( 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.

NOTE
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.

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.

Licence

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