【发布时间】:2016-11-07 17:11:37
【问题描述】:
我想为具有承诺的特定功能编写一些单元测试,但是,承诺在测试完成后解决。例如:
function systemUnderTest(promise, cb) {
return promise.then(data => {
console.log('>>>', data);
cb(data);
});
}
it('resolves and calls the sampleFunc', () => {
const spyCallback = spy(data => data)
systemUnderTest(Promise.resolve(42), spyCallback);
expect(spyCallback.callCount).to.equal(1);
});
我可以看到我的 log 语句在测试完成后触发,所以当断言运行时,callCount 显然是 0,因为它当时并没有运行,而是很晚才运行。
有什么想法吗?
【问题讨论】:
标签: unit-testing promise sinon chai