2013-07-03 17 views

回答

49

我發現Sinon.JS支持通過sinon.useFakeTimers操作JavaScript時鐘,如其Fake Timers文檔中所述。這是完美的,因爲我已經將Sinon用於嘲笑的目的,我想Mocha本身並不支持這一點,因爲它更像是一個嘲諷庫。

下面是採用摩卡/柴/興農一個例子:

var clock; 
beforeEach(function() { 
    clock = sinon.useFakeTimers(); 
}); 

afterEach(function() { 
    clock.restore(); 
}); 

it("should time out after 500 ms", function() { 
    var timedOut = false; 
    setTimeout(function() { 
     timedOut = true; 
    }, 500); 

    timedOut.should.be.false; 
    clock.tick(510); 
    timedOut.should.be.true; 
}); 
+0

爲什麼beforeEach和afterEach? – R01010010

+1

@Rimbuaj爲了在每次測試之前安裝模擬時鐘並在之後將其刪除? – aknuds1

+0

但只有一個測試...這就是爲什麼我問 – R01010010

相關問題