我是qunit和JS测试的新手。正在测试的代码执行动画(slideDown),必须在断言之前完成。看起来很简单,但我似乎无法让它工作。
asyncTest('my test', function() {
setTimeout(function() {
// assert something here
start();
}, 1000);
});
永远不会调用回调,测试会挂起。
我也尝试了其他各种方法。例如:
test('my test', function() {
expect(1);
stop(1000);
// assert something here
start();
});
我可以看到start
和stop
都被调用,test
调用完成,但它仍然挂起。
如果重要,这是我的设置:
setup: function() {
this.server = sinon.fakeServer.create();
this.server.respondWith([200, { 'Content-Type': 'text/html' }, new_items()]);
// invoke the actual system under test
this.server.respond();
}
答案 0 :(得分:1)
听起来像是Sinon假计时器(http://sinonjs.org/docs/#clock)。设置超时后调用this.clock.tick(1001)
。