1

我是 Jasmine 的新手,我对以下测试有疑问:

describe("my test suite", function() {
    it("my testcase", function() {
        var callbackWasCalled = false;
        function callback(){
            callbackWasCalled = true;
        }
        methodToTest(callback);
        expect(callbackWasCalled).toBe(true);
    });
});

在大多数情况下有效,但此代码不起作用:

methodToTest(callback) {
    setTimeout(function() { callback(); }, 100);
}

这是为什么?当我在回调中添加一个 console.log 时,我看到它被调用了。

4

1 回答 1

0

原因是在调用回调之前测试已经完成。尝试 jasmine.Clock 来模拟 settimeout 方法。

于 2012-11-08T22:15:43.383 回答