Async / Await在Mocha中抛出一个错误

时间:2016-09-09 12:24:10

标签: javascript unit-testing async-await mocha

我试图抓住一个应由函数getUserRecommendations抛出的错误。这是我的例子:

it('should throw an error when no user ID is provided', (done) => {
  expect(async () => {
    await Client.getUserRecommendations(null, {})
  }).to.throw(/Missing/)
})

不幸的是它没有用,我得到的结果是我的测试没有传递这条消息:

AssertionError: expected [Function] to throw an error

1 个答案:

答案 0 :(得分:6)

您设置测试的方式不起作用,因为expect.to.throw不期望承诺。至少我认为这是基于this issue发生的事情。

最好的选择是使用chai-as-promised并执行以下操作:

it('should throw an error when no user ID is provided', () => {
  expect(Client.getUserRecommendations(null, {})).be.rejectedWith(/Missing/);
});