z5h*_*z5h 7 javascript unit-testing qunit
我想向QUnit添加新的断言.我做了一件事:
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);
}
});
Run Code Online (Sandbox Code Playgroud)
当我increases(foo,bar,baz)在我的测试中使用时,我得到了
ReferenceError:未定义增量
从浏览器控制台,我可以看到increases在发现QUnit.assert以及所有其他标准功能:ok,equal,deepEqual等.
从控制台,运行:
test("foo", function(){console.log(ok) });
我看到的来源ok.
跑步:
test("foo", function(){console.log(increases) });
我被告知增加没有定义.
在测试中使用增加所需的魔力是什么?此外,哪里(如果有的话)是文件?
谢谢
我发现解决方案是在测试回调函数中接受一个参数.该参数将具有额外的断言类型.所以我们可以这样称呼它:
//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);
});
Run Code Online (Sandbox Code Playgroud)