You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
1.6 KiB
91 lines
1.6 KiB
|
|
/** |
|
* Module dependencies. |
|
*/ |
|
|
|
var Suite = require('../suite') |
|
, Test = require('../test'); |
|
|
|
/** |
|
* QUnit-style interface: |
|
* |
|
* suite('Array'); |
|
* |
|
* test('#length', function(){ |
|
* var arr = [1,2,3]; |
|
* ok(arr.length == 3); |
|
* }); |
|
* |
|
* test('#indexOf()', function(){ |
|
* var arr = [1,2,3]; |
|
* ok(arr.indexOf(1) == 0); |
|
* ok(arr.indexOf(2) == 1); |
|
* ok(arr.indexOf(3) == 2); |
|
* }); |
|
* |
|
* suite('String'); |
|
* |
|
* test('#length', function(){ |
|
* ok('foo'.length == 3); |
|
* }); |
|
* |
|
*/ |
|
|
|
module.exports = function(suite){ |
|
var suites = [suite]; |
|
|
|
suite.on('pre-require', function(context){ |
|
|
|
/** |
|
* Execute before running tests. |
|
*/ |
|
|
|
context.before = function(fn){ |
|
suites[0].beforeAll(fn); |
|
}; |
|
|
|
/** |
|
* Execute after running tests. |
|
*/ |
|
|
|
context.after = function(fn){ |
|
suites[0].afterAll(fn); |
|
}; |
|
|
|
/** |
|
* Execute before each test case. |
|
*/ |
|
|
|
context.beforeEach = function(fn){ |
|
suites[0].beforeEach(fn); |
|
}; |
|
|
|
/** |
|
* Execute after each test case. |
|
*/ |
|
|
|
context.afterEach = function(fn){ |
|
suites[0].afterEach(fn); |
|
}; |
|
|
|
/** |
|
* Describe a "suite" with the given `title`. |
|
*/ |
|
|
|
context.suite = function(title){ |
|
if (suites.length > 1) suites.shift(); |
|
var suite = Suite.create(suites[0], title); |
|
suites.unshift(suite); |
|
}; |
|
|
|
/** |
|
* Describe a specification or test-case |
|
* with the given `title` and callback `fn` |
|
* acting as a thunk. |
|
*/ |
|
|
|
context.test = function(title, fn){ |
|
suites[0].addTest(new Test(title, fn)); |
|
}; |
|
}); |
|
};
|
|
|