1

私はジャスミンに不慣れで、次のテストに問題があります。

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 に答える