sách gpt4 ăn đã đi

javascript - 如何在 Mocha 测试中模拟时间的流逝,以便调用 setTimeout 回调?

In lại 作者:IT王子 更新时间:2023-10-29 03:13:39 27 4
mua khóa gpt4 giày nike

我需要测试依赖于 setTimeout 的 JavaScript 代码以便执行周期性任务。我如何从我的 Mocha 测试中模拟时间的流逝,以便调用 setTimeout 回调?

我基本上要求类似于 Jasmine's Mock Clock 的功能,它允许您将 JavaScript 时间提前一些滴答。

câu trả lời hay nhất

我发现 Sinon.JS 支持通过 sinon.useFakeTimers 操纵 JavaScript 时钟,如其 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;
});

关于javascript - 如何在 Mocha 测试中模拟时间的流逝,以便调用 setTimeout 回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17446064/

27 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress