我最近开始使用QUnit对我的JavaScript进行单元测试,我对文档中的一项功能感到有些困惑:expect()
。
根据文档,expect()
旨在:
[s]指出在测试中预计会运行多少个断言。
以下是他们给出的例子:
test( "a test", function() {
expect( 2 );
function calc( x, operation ) {
return operation( x );
}
var result = calc( 2, function( x ) {
ok( true, "calc() calls operation function" );
return x * x;
});
equal( result, 4, "2 square equals 4" );
});
我唯一看到的是维护噩梦。每次向测试添加断言时,都必须更新该编号,否则测试将失败。这种功能是否有实际应用?
答案 0 :(得分:10)
我唯一看到的是维护噩梦......这种功能是否有实际应用?
嗯,我认为expect
的意思是使用分组有意义的任务。它对测试事件或回调非常有用,例如:
test('trigger an event', function() {
expect(1);
$('div')
.on('click', function() { ok(1) });
.trigger('click');
});
如果你将有意义的任务分组在小测试中,预计只有2或3个断言,那么这不会成为一场噩梦。
答案 1 :(得分:3)
它可以用作安全措施,以确保您没有以某种方式编写无法运行的测试。如果你养成了编写预期数量的测试的习惯,你是否应该以某种方式编写一个测试套件,其中一个测试由于某种原因隐藏在QUnit中,QUnit会在你做之前选择它。