我怎样才能使一个笑话测试失败的任何错误抛出?
我试过一些,但还没有确定语法。
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();
});
请注意匿名函数。是的,这给了我几次机会: