gpt4 book ai didi

angularjs - 模拟 e2e 测试时如何检测 API 修改?

转载 作者:行者123 更新时间:2023-12-03 20:50:11 26 4
gpt4 key购买 nike

我想为我们团队的项目建立一个坚实的 e2e 测试基础,但我找不到这个问题的简单解决方案:

当您模拟所有调用时,检测服务器返回的对象的实际模型是否已被修改的最佳方法是什么?

您的测试仍会通过,因为他们正在测试模型的过时版本,但应用程序可能已损坏。

例如,如果模拟假定 /api/users/1返回 null如果用户不存在,当它实际返回一个空对象时,尽管测试可能通过,但被测试的行为依赖于不正确的假设,因此可能会以意想不到的方式失败。

或者,后端以某种方式提供具有最新模型的静态 json 文件,而前端依赖于此?

这当然假设在后端工作的人和在前端工作的人是不同的团队。

我在这里使用 Angular 1.x 和 Protractor,但这并不真正取决于技术。

最佳答案

我认为你在做什么(测试期间的前端隔离)是正确的,保持这种方式。

你可以做的来验证你的模拟是其中之一:

1) 如果前端和后端紧密耦合并一起开发 - 为后端添加一组单元测试以验证 API 响应。
这样,如果 API 中的某些内容发生变化,后端测试将失败,您就会知道前端模拟也应该更新。

在开发过程中,您可以定期甚至在每次代码更改时运行两组测试(e2e 和后端单元测试)。

2)如果前端或多或少独立于后端,那么您需要进行一些集成测试,除了 e2e 测试之外,您还将运行这些测试。
这些应该向后端执行实际的 HTTP 请求,并将返回的数据结构与您的模拟进行比较。通过这种方式,您可以检测模拟过时的情况。

第二种方法更可靠,但集成测试可能比后端单元测试慢,因此您只能在 CI 服务器上自动运行它们,而不是在本地开发期间。

关于angularjs - 模拟 e2e 测试时如何检测 API 修改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34816578/

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