如果引发任何错误,我如何使玩笑测试失败?
我尝试了一下,但是还没有确定语法。
test('getArcId => Error', async () => {
await expect(client.getArcId('skynet')).rejects.toThrow();
});
我收到错误消息
getArcId› getArcId =>错误
期望(已接收).rejects.toThrow()
接收的函数未抛出
无论如何,以下测试通过了,所以我打算测试的功能确实抛出了(至少就我对抛出的含义的理解而言):
test('getArcId => Error', async () => {
await client.getArcId('skynet').catch(e =>
expect(e.message).toBe('Command failure')
);
});
答案 0 :(得分:0)
要使Jest异常处理按预期工作,请向其传递一个匿名函数,如:
test('getArcId => Error', async () => {
await expect(() => client.getArcId('skynet')).rejects.toThrow();
});
test('throws on octopus', () => {
expect(() => {
drinkFlavor('octopus');
}).toThrow();
});
请注意匿名功能。是的,那让我有几次:)
答案 1 :(得分:0)
我无法toThrow()
上班,但是像这样进行测试就可以了;
it('throws on connection error', async () => {
expect.assertions(1);
await expect(nc.exec({ logger: true }))
.rejects.toEqual(Error('No command provided to proxy.'));
});
如果我只拒绝一条消息;
.rejects.toEqual('some message');
答案 2 :(得分:0)
Data.Person
答案 3 :(得分:0)
检查函数引发的错误
it('should return error message', () => {
expect(() => fn().toThrowError(
new Error('Error Message')
);
});