首页 > 解决方案 > E2E 测试前端并模拟后端使用 Cypress 发出的请求

问题描述

目前,在 e2e 测试用例中创建客户时,我的条状支付网关会显示“客户已经存在”,这是真的,因为该测试用例已经运行过一次。

什么是高级解决方案?如果这将是一个单元测试,我认为模拟支付提供商的请求将是要走的路。但在这种情况下,我只能拦截来自前端的请求,对吧?我可以嘲笑我对后端的整个请求,但这不是我认为的 e2e 测试的重点。

我还考虑了某种标志或环境变量,以便后端知道它当前是否经过 e2e 测试(在这种情况下表现不同,例如不发出这个特定请求)。但我认为这不是好的做法。

标签: testingmockingcypresse2e-testing

解决方案


好吧,我想通了一些东西。我认为 e2e 也应该测试集成服务,比如我的后端和支付网关之间的集成。

测试开始时,我通过执行以下小代码片段来修改电子邮件(这是支付提供商的重复键)。现在有效,我认为这还不错:

user.email = user.email.split("@").join(`${Date.now()}@`);


推荐阅读