나는 너가해서는 안되는 것을 시험하려고하는 것 같아. 테스트의 이름은 주어진 시간 초과 후에 setTimeout
함수가 console.log
을 호출하는 것을 신뢰하지 않는다는 것을 나타냅니다.
이 코드는 사용자 코드가 아니므로 단위 테스트를 수행하지 않아야합니다. 또한 setTimeout
은 제대로 작동하는지 확인할 수 있습니다.
그래서 남은 것은 무엇입니까? 귀하의 코드 - 코드 은setTimeout
입니다. setTimeout을 올바르게 호출하는지 확인할 수 있습니다.
이 작업을 수행하는 방법에 관해서는 사용할 수있는 두 가지 기능이 있습니다. 첫 번째는 시계를 제어 할 수있는 useFakeTimers
입니다. 두 번째는 스파이입니다.이 스파이는 console.log
에서 사용해야합니다. https://github.com/mochajs/ :
describe('#helloAfter100ms()',function(){
it('console logs hello ONLY after 100ms',function(){
const clock = sinon.useFakeTimers();
const logSpy = sinon.spy(console, 'log');
helloAfter100ms();
expect(logSpy).to.not.have.been.called;
clock.tick(100);
expect(logSpy).to.have.been.calledOnce;
logSpy.restore();
clock.restore();
}
}
난 당신이 예를 들어 timeout''이러한 경우에 재료와 시간 조작을 조롱/감시 주셔서 방법을 제공 모카와'도 sinon' 사용하는 것이 좋습니다 mocha/wiki/Spies – quirimmo