这是关于您的测试的错误,而不是您正在测试的代码错误。如果你的测试写得很好,你不应该遇到那个错误。测试本身超时。如果您正在编写一个测试以查看某些代码是否超时,那么您将编写测试来处理该测试,而不是测试只是抛出一个错误,因为您没有及时调用done()
。
// this function times out if passed "true" as second argument
function testThis(done, shouldTimeout) {
setTimeout(function() {
shouldTimeout || done();
}, 500);
}
it("timed out", function(done) {
var timedOut = false;
setTimeout(function() {
testThis(function() {
// this shouldn't be called because we're telling `testThis` to timeout
timedOut = true;
}. true);
});
setTimeout(function() {
expect(timedOut).toBeFalsy();
done();
}, 505);
});
如果你需要等待很长的时间来看看是否有超时,你可以改变茉莉等待多长时间测试通过改变jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000;
茉莉花抛出一个超时错误,确实有a mock为setInterval
前和setTimeout
,它们可让您同步运行该代码,并保存所有浪费的时间。
来源
2015-01-07 22:18:12
m59