gpt4 book ai didi

node.js - 如果在测试过程中无法重现错误,如何测试 catch 子句?

转载 作者:太空宇宙 更新时间:2023-11-03 22:23:47 34 4
gpt4 key购买 nike

我在我的服务器端应用程序中使用 Jest 和 Supertest。我希望通过明显测试每条未覆盖的行来增加测试的覆盖范围,直到我被以下内容阻止:

Activity.find()
.then((data) => {
res.json(data);
}).catch(e => res.status(400).send(e));

如果我无法在测试中重现此类错误(或者至少我不知道如何重现),我该如何测试 catch 子句?

最佳答案

在单元测试中,您应该只测试您的代码,而不应该依赖第三方库。当然,这个建议应该合理应用(例如,我们必须依赖于我们正在使用的平台的编译器和开箱即用的库)。

到目前为止,不 stub json 似乎是合理的,因为它是一个值得信赖的成熟库。但是,一旦您想要测试抛出异常之类的行为,除了创建一个 stub ,将其以某种方式注入(inject)到您的代码中,并在测试设置中使其在调用 json 时抛出异常,就没有其他方法了。

作为副作用,这会将您的代码与 json 的特定实现分离,并使您的代码更加灵活。当然,与 JSON 实现解耦似乎有点过头了,但仍然显示了测试驱动设计在这种情况下是如何工作的(即使代码是第一个)。

关于node.js - 如果在测试过程中无法重现错误,如何测试 catch 子句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49887883/

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