我正在尝试测试一些异步代码。但我遇到了一些麻烦。
我读过这篇文章(https://github.com/wietsevenema/testing-aync-with-mocha/blob/master/test.js),并尝试了所有的例子。但是我仍然得到Timeout Error(用我自己的Promise实现和mongoose)。
开始认为我的代码中存在错误,请参阅下文。
static updateEndDate(userId: string, endDate: Date):Promise<iUserModel> {
return UserSchema.findOneAndUpdate({'_id': userId}, {$set: {exp_on: endDate}})
.exec()
.then((user: iUserModel) => {
if(user)
return Promise.resolve(user);
else
return Promise.reject({errmsg: 'No user found'});
}).catch(e => {
return Promise.reject(e);
})
}
当我尝试以下代码时:
const resolvingPromise = new Promise((resolve) =>
resolve('promise resolved')
);
it('assertion success', async () => {
const result = await resolvingPromise;
chai.expect(result).to.equal('promise resolved');
});
一切顺利。但是当我使用自己的实现时,我会得到超时。
it('assertion success', async () => {
const result = await User.findByID('41224d776a326fb40f000001');
chai.expect(result).to.equal('testing');
});
只想添加我也试过这个实现:
it('assertion success', async () => {
return User.findByID('41224d776a326fb40f000001')
.then((res) => {
chai.expect(res).to.equal('test');
});
});
思考?