[当前,当我有一个承诺会抛出错误时,为了测试是否抛出了正确的错误,我正在执行以下操作。
let result, error;
try {
result = await myFunction();
} catch (e) {
error = e;
}
expect(result).to.not.exist;
expect(error).to.eql(new Error("You must pass in a parameter."));
但是,如果myFunction
不是Promise或异步函数,则可以执行以下操作。
expect(() => myFunction()).to.throw(new Error("You must pass in a parameter."));
使用Mocha / Chai时是否有更好的方法来检查是否为Promise / async函数引发了错误?
您可以使用chai-as-promised
您的代码将是这样(未经测试):
expect(() => myFunction()).be.rejectedWith(Error, 'You must pass in a parameter.');