【问题标题】:Should I mock APIs in end-to-end testing?我应该在端到端测试中模拟 API 吗?
【发布时间】:2022-07-13 05:07:51
【问题描述】:
当您为您的应用程序进行 e2e 测试时,您希望测试整个应用程序,而不是它的某些部分,例如单元测试或集成测试。
但在某些情况下,人们会模拟 API。
例如,当您有一个庞大的微服务作为您的后端时,这使得您的 e2e 测试非常缓慢,或者在您自己的 API 之外,您依赖于其他第三方 API,这使得您的 e2e 测试偶尔会失败。
所以你只想确保你的前端应用运行良好,你应该怎么做?
在我的公司,我们有一个庞大的系统和一个非常庞大的数据库,这使得 e2e 测试非常无效。在这种情况下模拟 API 是否正确?
【问题讨论】:
标签:
testing
automated-tests
end-to-end
【解决方案1】:
我的理解是,如果您只想测试前端应用程序(我认为这不是 E2E 测试),您可以改用单元测试。如果您仍然想从浏览器测试用户界面,那么您可以模拟 API 的响应,但仍然不是 E2E 测试。
如果您想执行端到端测试,则不应模拟任何数据库或 API 调用。
此处的例外是不受您控制的第三方 API。在那种特定情况下,您可以模拟它以在您的测试中减少外部依赖,但如果第三方更改并且您不知道它,您不会注意到它是否被模拟。也就是说,如果您模拟第三方 API,请确保您与 API 提供者保持流畅的通信,以便在您的应用失败之前获得更改警报。