【发布时间】:2018-08-26 08:50:03
【问题描述】:
我有以下验证功能检查用户是否存在:
validate.user = async (user, password) => {
const matches = await bcrypt.compare(password, user.password);
if (matches) return user;
if (!matches) {
return validate.logAndThrow('User password does not match');
}
return validate.logAndThrow('Error in bcrypt compare');
};
以下使用 Chai 的测试应该对此进行测试:
chai.use(sinonChai);
const { expect } = chai;
describe('#user', () => {
it('show throw if user is undefined', () => {
expect(() => validate.user(undefined, 'pass')).to.throw('User does not exist');
});
确实会引发错误,但是 mocha 在控制台中显示以下内容:
2) 如果用户未定义,则显示抛出 (节点:18587)UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝 id:2):错误:用户不存在
所以我的问题是,我如何重写测试以使其确实捕获承诺拒绝?
【问题讨论】:
标签: javascript mocha.js chai