问题
我设置了以下Jest测试以确保抛出异常:
it('can not rollback a step', async () => {
await expect(app.service('rides').patch(ride._id, {
currentStep: 1,
})).rejects.toThrow(BadRequest);
});
如何断言异常内容?
示例
考虑到此BadRequest错误:
BadRequest {
type: 'FeathersError',
name: 'BadRequest',
message: 'invalid data',
code: 400,
className: 'bad-request',
data: {},
errors: [
{
message: 'currentStep must be greater than 1',
path: [Array],
type: 'array.min',
context: [Object]
}
],
我想检查errors[0].message
的内容,而不考虑错误对象的其余部分。
您catch
,然后进行分析。不要忘记jest.assertions()
,以确保代码真正抛出。
jest.assertions(1);
try {
await app.service('rides').patch(ride._id, {
currentStep: 1,
});
} catch(e) {
expect(e.errors[0].message).toEqual('abc');
}