testing - E2E 测试前端并模拟后端使用 Cypress 发出的请求
问题描述
目前,在 e2e 测试用例中创建客户时,我的条状支付网关会显示“客户已经存在”,这是真的,因为该测试用例已经运行过一次。
什么是高级解决方案?如果这将是一个单元测试,我认为模拟支付提供商的请求将是要走的路。但在这种情况下,我只能拦截来自前端的请求,对吧?我可以嘲笑我对后端的整个请求,但这不是我认为的 e2e 测试的重点。
我还考虑了某种标志或环境变量,以便后端知道它当前是否经过 e2e 测试(在这种情况下表现不同,例如不发出这个特定请求)。但我认为这不是好的做法。
解决方案
好吧,我想通了一些东西。我认为 e2e 也应该测试集成服务,比如我的后端和支付网关之间的集成。
测试开始时,我通过执行以下小代码片段来修改电子邮件(这是支付提供商的重复键)。现在有效,我认为这还不错:
user.email = user.email.split("@").join(`${Date.now()}@`);
推荐阅读
- java - Swing Java 中的累积可运行对象
- rest - 如何根据用户的角色和请求方法设置规范化组
- pandas - 等价于 pandas 中的 numpy.put()
- java - 尽管变量被实例化,但仍获得空点异常
- angular - 当我进行 http 调用时,角度测试失败
- cmd - Robocopy /if(包括文件)语法不遵循 /xf 语法
- javascript - 一个安静的 api 结束时的 ID 问题
- javascript - TypeError:无法通过 useEffect 和 Tabulator 读取未定义的属性“”
- c# - 遍历父面板内不同面板内的复选框
- android - 以符合 Google 隐私政策的方式在 android 应用程序中显示最后一次通话