【发布时间】:2020-06-22 14:50:09
【问题描述】:
在 mocha 中我有两个测试:
- 第一个测试异步方法是否获得应有的值:
- 第二个测试在获取值时,第一个方法是否“缓存”(我有一个内部机制)一个值,所以也是异步的。
所以在执行第二个测试之前,我需要确保我的第一个测试已完全完成(这意味着我的第一个获取值的异步方法已完全完成)。
这是我的代码:
it('Should return a valid value ', () => {
myService.check('value', (success) => {
expect(success.isValid)
});
})
it('Should put the value in cache', () => {
return myService.getCached('value').then(result => {
expect(result).to.be.ok;
})
})
问题是第二个“它”在第一个完成之前启动...
我可以使用超时,例如:
it('Should return a valid value ', () => {
myService.check('value', (success) => {
expect(success.isValid)
});
}).timeout(5000)
it('Should put the value in cache', () => {
return myService.getCached('value').then(result => {
expect(result).to.be.ok;
})
})
但我不喜欢这样,它不是 100% 可靠的,我认为在两次测试之间我们不应该等待固定的时间值!
有没有更好的方法来做到这一点?
【问题讨论】:
标签: node.js unit-testing asynchronous mocha.js chai