使用JestJS断言异常详细信息



问题

我设置了以下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');
}

相关内容

最新更新