我似乎有很多示例,这些示例如何测试是否由于某些原因而拒绝了承诺,如下所示:
it('should reject if no startdate is given', () => {
expect.assertions(1);
return expect(MyService.fetch()).rejects.toEqual({
error: 'Your code message',
});
});
但是如果我只是想测试一个承诺是否被拒绝,该怎么写。
答案 0 :(得分:0)
尝试使用.toBeDefined()
代替.toEqual(...)
编辑:
您还可以使用.toThrow()
,这是JEST实际上推荐的方法
正如我稍后发现的,您需要使用async / await对此进行测试
这是有关如何对其进行测试的示例:
it('should test promise reject', async () => {
await expect(toReject(true)).rejects.toThrow()
});
答案 1 :(得分:0)
如果您希望诺言被拒绝,请使用.rejects
。
test('should reject if no startdate is given', () => {
return expect(MyService.fetch()).rejects.toMatch('error');
});
您可以将异步和等待与.resolves
或.rejects
结合使用。
test('should reject if no startdate is given', async () => {
await expect(MyService.fetch()).rejects.toThrow('error');
});