我正在尝试使用mocha和chai编写单元测试,但是我遇到了一个问题,我遇到了超时错误,而不是抛出实际错误,我似乎无法找到解决方法。
我得到的错误:
1) Unit Tests for Networks Array
should check that networks array is not empty:
Error: timeout of 2000ms exceeded. Ensure the done() callback is being called in this test.
在我的代码中,我认为与我正在测试的相反是正确的,所以我有一个预期的失败。
有没有一种固定此类事情的标准方法?
describe('Unit Tests for Networks Array\n', function () {
it('should check that networks array is not empty', function (done) {
git.getNetworks(function (networks) {
expect(networks).to.be.empty(); // expected failure
done();
});
});
答案 0 :(得分:0)
Promise以这种方式工作,你可以拒绝或解决它。但是,如果您的承诺逻辑中存在错误,并且您没有抓住错误,因为它吞噬并且无声地死亡并且永远不会显示。
git.getNetworks.then(function() {
/* do something with the result */
}).catch(function() {
/* error :( */
})
确保覆盖拒绝回调(可选)和catch(始终),否则Promise静默抛出错误以及Mocha发送超时的原因