jest toEqual无法使用异常匹配
我是jest
的新手,所以我不确定这是不是我的错。所以这是我的测试用例
it('should throw error if wrong email or phone number is provided', async () => {
await expect(userService.verifyCredentials('[email protected]', 'sayantan94'))
.rejects
.toEqual(new UnauthorizedException('Invalid email or phone number'));
})
但即使抛出相同的异常,这也会失败。这是输出
FAIL src/modules/user/user.service.spec.ts (5.156s)
● UserService › verifyCredentials › should throw error if wrong email or phone number is provided
expect(received).toStrictEqual(expected)
Expected value to equal:
[Error: [object Object]]
Received:
[Error: [object Object]]
Difference:
Compared values have no visual difference.
88 | await expect(userService.verifyCredentials('[email protected]', 'sayantan94'))
89 | .rejects
> 90 | .toEqual(new UnauthorizedException('Invalid email or phone number'));
| ^
91 | })
92 | })
93 |
我该如何检查?
回答如下:而不是toEqual
尝试toThrow
it('should throw error if wrong email or phone number is provided', async () => {
await expect(userService.verifyCredentials('[email protected]', 'sayantan94'))
.rejects
.toThrow('Invalid email or phone number');
});
参考:https://jestjs.io/docs/en/expect.html#rejects