Я пытаюсь проверить асинхронный обратный вызов, проверив, что он вызывается, скажем, n
раз за m
секунды.
Вот мой код:
test("async callback", function() {
expect(1);
var called = 0;
var callback = function() {called++;};
var model = new Model(callback);
model.startCallbacks();
function theTest() { // call this a few seconds later and verify
model.stopCallbacks(); // that the callback has been called n times
equal(3, called, "number of times callback was called");
}
setTimeout(theTest, 10000); // wait about 10 seconds until calling theTest
});
(model.startCallbacks
и model.stopCallbacks
реализованы с setInterval
.)
Это не работает.Я думаю, это потому, что выполнение завершается после завершения функции тестирования, пока callback
все еще выполняется асинхронно.
Что я хочу проверить: , что model
правильно вызывает callback
.Как мне это сделать?