【问题标题】:E2E Testing a frontend and mock a request the backend is making with CypressE2E 测试前端并模拟后端使用 Cypress 发出的请求
【发布时间】:2021-03-15 17:37:28
【问题描述】:

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

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

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

【问题讨论】:

  • 每个测试都应该设置和删除完成测试所需的所有数据,所以当测试运行时,它应该有一个干净的状态开始。如果您的测试由于客户已经存在而失败,那么您应该在测试开始之前从数据库中删除客户或将数据库设置为某种干净的状态。

标签: testing mocking cypress e2e-testing


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2020-03-30
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    • 2020-06-04
    • 2020-06-10
    • 1970-01-01
    • 1970-01-01
    • 2019-08-22
    相关资源
    最近更新 更多