Jestjs 测试承诺是否被拒绝?
我举了很多例子来测试一个承诺是否因为某种原因而被拒绝,如下所示:Jestjs 测试承诺是否被拒绝?,jestjs,Jestjs,我举了很多例子来测试一个承诺是否因为某种原因而被拒绝,如下所示: it('should reject if no startdate is given', () => { expect.assertions(1); return expect(MyService.fetch()).rejects.toEqual({ error: 'Your code message', }); }); 但是,如果我只是想测试一个承诺是否被拒绝,而不管原
it('should reject if no startdate is given', () => {
expect.assertions(1);
return expect(MyService.fetch()).rejects.toEqual({
error: 'Your code message',
});
});
但是,如果我只是想测试一个承诺是否被拒绝,而不管原因是什么,我该怎么写呢。尝试使用.toBeDefined而不是.toEqual
编辑:
您还可以使用.toThrow,JEST实际推荐的方法
正如我后来发现的,您需要使用async/await来测试这个
下面是一个关于如何使用它们进行测试的示例:
it('should test promise reject', async () => {
await expect(toReject(true)).rejects.toThrow()
});
如果您希望承诺被拒绝,请使用.rejects
您可以将async和wait与.resolves或.rejects组合使用
test('should reject if no startdate is given', () => {
return expect(MyService.fetch()).rejects.toMatch('error');
});
test('should reject if no startdate is given', async () => {
await expect(MyService.fetch()).rejects.toThrow('error');
});