我正在使用独立的茉莉花(无业障) 我有一个执行功能并期望结果的简单测试:
it("...", function() {
expect(f(x)).toBe(y);
});
如果f()函数执行的时间超过X毫秒,如何使该测试失败并显示特定的错误消息?
谢谢
答案 0 :(得分:0)
这是一个可能对您有帮助的小测试
require('jasmine');
function slow(n) {
let timer = 10000000000;
while(timer--) {
// do nothing, just waiting
}
return n;
}
describe('My test', () => {
it('test slow function', (done) => {
setTimeout(() => {
done.fail('Running to much time');
}, 10000);
expect(slow(1)).toBe(1);
done();
});
});
在我的示例中,slow
函数可以是您的f
函数。因此,我们的想法是,如果slow
不是async
,那么代码将等待直到完成,因此,我们可以使用async
的{{1}}功能,只需声明我们收到jasmine
回调或返回done
,那么Promise
将等待jasmine
被执行或done
被解决。
我的PC中的代码运行时间为12s,但是如果要花10s,我将调用Promise
。
如果您拥有done.fail()
的配置jasmine
,则测试将在调用"stopSpecOnExpectationFailure": true
之后立即停止。
请参阅async tests的一些示例。
希望有帮助