Ответ 1
Я узнал, что Sinon.JS поддерживает манипулирование часами JavaScript через synon.useFakeTimers, как описано в документации Fake Timers. Это прекрасно, поскольку я уже использую Sinon для издевательских целей, и я предполагаю, что имеет смысл, что Mocha сам по себе не поддерживает это, поскольку он больше в области насмешливой библиотеки.
Здесь пример использования Mocha/Chai/Sinon:
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;
});