Node.js 超过了2000毫秒的超时时间。对于异步测试和挂钩,请确保;完成();被称为;如果返回承诺,请确保它已解决
我正在编写单元测试用例来测试user.test.js中user.service.js的方法,但是如果测试用例的数量增加,我会遇到这个错误: 错误:超过2000毫秒的超时。对于异步测试和挂钩,请确保调用“done()”;如果返回承诺,请确保它已解析 在此,我将plunker链接附加到最低要求的文件: 有些文件与此无关。我尝试过的是: 1) 覆盖了所有测试用例的超时,并且在几个测试用例之后面临相同的问题 2) 在每个测试用例中调用done() 3) 在package.json的命令行中描述了配置的超时Node.js 超过了2000毫秒的超时时间。对于异步测试和挂钩,请确保;完成();被称为;如果返回承诺,请确保它已解决,node.js,mocha.js,chai,Node.js,Mocha.js,Chai,我正在编写单元测试用例来测试user.test.js中user.service.js的方法,但是如果测试用例的数量增加,我会遇到这个错误: 错误:超过2000毫秒的超时。对于异步测试和挂钩,请确保调用“done()”;如果返回承诺,请确保它已解析 在此,我将plunker链接附加到最低要求的文件: 有些文件与此无关。我尝试过的是: 1) 覆盖了所有测试用例的超时,并且在几个测试用例之后面临相同的问题 2) 在每个测试用例中调用done() 3) 在package.json的命令行中描述了配置的
我在回报道的承诺。所以当承诺得到解决时,我们无法预测。测试用例的顺序也是我们无法预测的,所以我们不能增加测试套件或单个测试用例的超时时间。其他服务的测试用例也很少。那么,有没有办法解决这个问题。您需要为每个案例传递done回调-这将解决您的问题
it('creates a user', function(done) {
var user = {
id: null,
name: 'abc',
email: 'xyz@gmail.com',
phoneNo: 8978567438,
picUrl: 'nilu',
description: 'SI',
status: 'active',
waitingTime: 10,
rating: 7
};
new Promise((resolve, reject) => {
return userService.register(user, (res) => {
//log.info('value after insert: ' + JSON.stringify(res));
//expect(res.id).to.be.greaterThan(0);
//expect(result.name).to.equal(user.name);
//userService.delete(res.id, (res) => {});
}).then((result) => {
//expect(result.id).to.be.greaterThan(0);
log.info('user value after insert: ' + JSON.stringify(result));
//userService.delete(result.id, (result) => {});
resolve();
});
}).then(() => done());
});
你为什么不在这里使用sinon
如果不想使用sinon.stub,则需要在之后增加超时
describe('userDao', function() {
this.timeout(3000)
我在这里贴了一个例子:
希望它能帮助您这通常意味着测试在成功状态下没有调用
done()
。您可以通过调用done()
来解决此问题
如果仍然看到错误,则可能是没有调用回调,请仔细检查异步函数,例如上面的
contactService.getAll()
。仔细阅读。我在这里贴了一个例子。希望它能帮助你:请把我的答案标记为正确。
describe('userDao', function() {
this.timeout(3000)
describe('testing', () => {
describe('random test cases 1', () => {
it('Gets all contacts 1', (done) => {
return contactService.getAll((result) => {
done();
});
});
it('Gets all contacts 2', (done) => {
return contactService.getAll((result) => {
done();
});
});
});
describe('random test cases 2', () => {
it('Gets all contacts 21', (done) => {
return contactService.getAll((result) => {
done();
});
});
it('Gets all contacts 22', (done) => {
return contactService.getAll((result) => {
done();
});
});
});
});