joe

Joe is a JavaScript testing framework that actually works. Unlike Mocha, we won't die on you abruptly when executing dynamically created tests and are always able to associate the correct test to the correct corresponding test suite. Switching from Mocha is trivial and only takes a few minutes.

npm install joe
16 downloads in the last day
171 downloads in the last week
825 downloads in the last month

Joe

Build Status NPM version Gittip donate button Flattr donate button PayPayl donate button

Joe is a JavaScript testing framework that actually works. Unlike Mocha, we won't die on you abruptly when executing dynamically created tests and are always able to associate the correct test to the correct corresponding test suite. Switching from Mocha is trivial and only takes a few minutes.

Install

Node, Browserify

  • Use: require('joe')
  • Install: npm install --save joe

Ender

  • Use: require('joe')
  • Install: ender add joe

Usage

Example

// define your test suite
require('joe').describe('suite name', function(describe,it){
    // group together items into sub suites if you desire
    describe('sub suite name', function(describe,it){
        // create both synchronous and asynchronous tests
        it('synchronous test', function(){
            // do your stuff
        });
        it('asynchronous test name', function(complete){
            setTimeout(function(){
                // do your stuff
                complete();
            },500);
        });
        // run a methods before and\or after the test
        function beforeEach(test) {
            // do some pre test stuff
        }
        function afterEach(test, err) {
            // do some post test stuff
        }
        it('before and after options test', {before: beforeEach, after: afterEach}, function(){
            // do your stuff
        });
    });
    // you can also define tests dynamically when using the completion callback on the group
    describe('lets create dynamic tests', function(describe,it,done){
        setTimeout(function(){
            it('a synchronous dynamic test',function(){
                // do your stuff
            });
            done();
        },500)
    });
});
$ node example.js 
suite name
suite name ➞  sub suite name
suite name ➞  sub suite name ➞  synchronous test
suite name ➞  sub suite name ➞  synchronous test ✔   
suite name ➞  sub suite name ➞  asynchronous test name
suite name ➞  sub suite name ➞  asynchronous test name ✔   
suite name ➞  sub suite name ✔  
suite name ➞  lets create dynamic tests
suite name ➞  lets create dynamic tests ➞  a synchronous dynamic test
suite name ➞  lets create dynamic tests ➞  a synchronous dynamic test ✔   
suite name ➞  lets create dynamic tests ✔  
suite name ✔  

3/3 tests ran successfully, everything passed

Complete Documentation

View the Complete Joe Documentation on the Bevry Website

Custom Reporters

Discover the available Custom Reporters for Joe using the joe-reporter keyword on the NPM Registry

History

Discover the change history by heading on over to the History.md file.

Contribute

Discover how you can contribute by heading on over to the Contributing.md file.

Backers

Maintainers

These amazing people are maintaining this project:

Sponsors

No sponsors yet! Will you be the first?

Gittip donate button Flattr donate button PayPayl donate button

Contributors

These amazing people have contributed code to this project:

Become a contributor!

License

Licensed under the incredibly permissive MIT license

Copyright © 2012+ Bevry Pty Ltd us@bevry.me (http://bevry.me)

npm loves you