У меня есть класс
class Dummy {
constructor() {
this.prop1 = null;
this.prop2 = null;
this.prop3 = setInterval(() => {
this.method1()
}, 1000);
}
method1() {
// Method logic
}
}
var dummyObject = new Dummy();
module.exports = dummyObject;
Я хотел бы написать тесты для проверки того, что method1
вызывается через каждые 1 с.
Ниже приведен код теста
const dummyObject = require('./dummy.js');
describe("Test setInterval", function () {
it("Test setInterval", function () {
const clock = sinon.useFakeTimers();
const spy = sinon.spy(dummyObject, 'method1');
clock.tick(1001);
expect(spy.calledOnce).to.be.true;
clock.restore();
})
})
Однако, когда я запускаю тесты, я получаю сообщение об ошибке «Ожидается, что ложь равно истине», и при дальнейшем копании я понял, что не могу шпионить за методом, который вызывается через setInterval.
Пожалуйста, поделитесь своими мыслями о том, что я могу сделать, чтобы проверить этот сценарий?