我怎样才能使一个笑话测试失败的任何错误抛出?
我试过一些,但还没有确定语法。

test('getArcId => Error', async () => {
    await expect(client.getArcId('skynet')).rejects.toThrow();
});

我收到错误信息
getarcid>getarcid=>错误
期望(收到)。拒绝。tothrow()
接收的函数未引发
但是,以下测试通过,所以我打算测试的函数确实抛出(至少在我理解抛出的含义时是这样的):
test('getArcId => Error', async () => {
    await client.getArcId('skynet').catch(e =>
        expect(e.message).toBe('Command failure')
    );
});

最佳答案

要使jest异常处理按预期工作,请向其传递一个匿名函数,如:

test('getArcId => Error', async () => {
    await expect(() => client.getArcId('skynet')).rejects.toThrow();
});

jest documentation
test('throws on octopus', () => {
  expect(() => {
    drinkFlavor('octopus');
  }).toThrow();
});

请注意匿名函数。是的,这给了我几次机会:

09-28 13:56