【发布时间】:2017-09-19 09:19:52
【问题描述】:
我应该如何测试拒绝:
return new Promise(function(resolve, reject){
models.users.find({
where: {
email: email
}
}).then(function(result){
if(!result)
throw 'Invalid password'
}).catch(function(err){
reject(err);
});
});
在我的测试中:
it('should be rejected', function(){
let data= { req: {
email: 'alvin@.oc',
}};
return User.authUser(data).should.be.rejected;
});
它应该被拒绝并出现错误“无效密码”,但我收到错误:
Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure
it resolves.
【问题讨论】:
-
如果
models.users.find()已经返回了一个promise,你不应该使用new Promise包装它。 FWIW,您的代码永远不会调用resolve()...
标签: es6-promise chai chai-as-promised