如何使用Chai来确保Promise引发错误?

问题描述 投票:0回答:1

[当前,当我有一个承诺会抛出错误时,为了测试是否抛出了正确的错误,我正在执行以下操作。

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函数引发了错误?

javascript node.js mocha chai
1个回答
0
投票

您可以使用chai-as-promised

您的代码将是这样(未经测试):

expect(() => myFunction()).be.rejectedWith(Error, 'You must pass in a parameter.');
© www.soinside.com 2019 - 2024. All rights reserved.