gpt4 book ai didi

unit-testing - 在 Jest 中编写单元测试时预期会出现特定错误

转载 作者:行者123 更新时间:2023-12-04 04:06:47 27 4
gpt4 key购买 nike

我使用 nestjs (6.5.0) 和 jest (24.8) 并有一个抛出错误的方法:

  public async doSomething(): Promise<{ data: string, error?: string }> {
throw new BadRequestException({ data: '', error: 'foo' });
}

如何编写单元测试来检查我们是否获得了预期数据的预期异常?显而易见的解决方案是:

it('test', async () => {
expect(await userController.doSomething())
.rejects.toThrowError(new BadRequestException({ data: '', error: 'foo'});
});

但这不起作用,因为 new BadRequestException()创建一个具有不同调用堆栈的对象。我该如何测试?

最佳答案

jest documentation 中的示例相比,您可能会在这里遇到 2 个问题。

  • await应该在expect之外论据
  • rejects意味着抛出了一个错误,所以你测试是否相等

  • 就像是:
    it('test', async () => {
    await expect(userController.doSomething())
    .rejects.toEqual(new BadRequestException({ data: '', error: 'foo'});
    });

    关于unit-testing - 在 Jest 中编写单元测试时预期会出现特定错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56193832/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com