【发布时间】:2021-03-15 17:37:28
【问题描述】:
目前在 e2e 测试用例中创建客户时,我的条状支付网关显示“客户已存在”,这是真的,因为该测试用例已经运行过一次。
什么是高级解决方案?如果这将是一个单元测试,我认为模拟支付提供商的请求将是可行的方法。但在这种情况下,我只能拦截来自前端的请求,对吧?我可以嘲笑我对后端的整个请求,但我认为这不是 e2e 测试的重点。
我还考虑了某种标志或环境变量,以便后端知道它当前是否经过 e2e 测试(在这种情况下表现不同,例如不发出此特定请求)。但我认为这不是一个好习惯。
【问题讨论】:
-
每个测试都应该设置和删除完成测试所需的所有数据,所以当测试运行时,它应该有一个干净的状态开始。如果您的测试由于客户已经存在而失败,那么您应该在测试开始之前从数据库中删除客户或将数据库设置为某种干净的状态。
标签: testing mocking cypress e2e-testing