I'd like to add new assertions to QUnit. I've done something this:
QUnit.extend(QUnit.assert, {
increases: function(measure, block, message){
var before = measure();
block();
var after = measure();
var passes = before < after;
QUnit.push(passes, after, "< " + before, message);
}
});
When I use increases(foo,bar,baz)
in my test, I get
ReferenceError: increases is not defined
From the browser console I can see increases
is found in QUnit.assert
along with all the other standard functions: ok
, equal
, deepEqual
, etc.
From the console, running:
test("foo", function(){console.log(ok) });
I see the source of ok
.
Running:
test("foo", function(){console.log(increases) });
I am told increases is not defined.
What is the magic required to use my increases in a test? Also, where (if anywhere) is the documentation for that?
Thanks
I have found the solution is to accept a parameter in the test callback function. That parameter will have the extra assertion type. So we can call it like so:
//the assert parameter accepted by the callback will contain the 'increases' assertion
test("adding 1 increases a number", function(assert){
var number = 42;
function measure(){return number;}
function block(){number += 1;}
assert.increases(measure, block);
});