【发布时间】:2022-01-29 01:16:11
【问题描述】:
似乎我读到的大多数人都对此感到零麻烦。另一方面,我有一个其他人编写的测试套件,我试图用intercept() 替换route()。 API 拦截是为了处理按钮点击等,如果我只是替换它,其中大约 99.9% 会失败。所以,显然有一些语法在/使用拦截()我没有找到描述。
例子:
这行得通:
cy.route('POST', getApiPrefix() + '/prosjektfinansiering/'+ pfId +'/eiendom', result);
这不起作用。按钮点击未执行:
cy.intercept('POST', getApiPrefix() + '/prosjektfinansiering/'+ pfId +'/eiendom', result);
我尝试在“/prosjekt...”前添加“**”,并尝试删除“POST”,但没有成功。
有什么想法吗?如有必要,我很乐意发布更多信息。
更新:
进一步尝试:
在这里和那里得到一些提示,似乎这是使用intercept()的更正确的方法:
return cy.intercept('POST', getApiPrefix() + '/prosjektfinansiering/'+ pfId +'/eiendom', {
body: result
});
这也不行。
这些示例中的变量结果是一个对象,它描述了在路由匹配 api 路径中发送回 POST 请求前端的内容。
为了排除故障,我可以看到使用intercept()时,使用intercept时有一个路由不工作(图中最下面的那个)。但是,我一生都无法理解为什么,以及如何以不同的方式编写路线匹配?
【问题讨论】:
-
getApiPrefix()返回什么? -
它只是重新调整使用的前缀,'/api'。
-
docs.cypress.io/api/commands/intercept#Command-Log 使用“仪表板 - 路由”进行调试。您可能会得到不匹配的确切路线。
-
在单击按钮后使用
cy.wait()调用它的拦截是否有别名? -
暂时没有,没有。
标签: cypress cy.intercept