我发现的所有示例都涉及调用API以及定义方法和URL。例如
cy.server()
cy.route({
method: 'GET',
url:'https://www.something.com,
}).as('get_jobs')
cy.get('[data-cy="job-search-input"] button').click()
cy.wait('@get_jobs').then((xhr) => {
cy.log(xhr.response.body.data)
})
我想要的只是选择按钮,然后单击单击并阅读它给我的响应。我不想再次定义url和method,而是使用代码中已使用的url和method,然后只需按下按钮后检查它给我的响应即可。
我该怎么做?
答案 0 :(得分:2)
根据上面的问题和评论,听起来您正在尝试执行以下操作:
虽然可以通过这种方式编写测试,但是存在一个问题:API的响应可能会根据您无法控制的情况而变化。例如,如果您正在处理项目,并且API当天发生故障,该怎么办?您的代码将要中断,并且不会由于代码中的错误引起。实际上,您根本不会测试代码(至少不会测试您认为正在测试的代码),因为您不会从API获得想要的响应。 >
这就是赛普拉斯提供一种对请求进行存根的方法的原因-确保在运行测试时,可以从API获得所需的响应。如果要编写测试以查看API返回值A时会发生什么,则需要确保API不返回值B。对请求进行存根可以确保应用程序在需要时获取值A。
所以您看到的示例可能会执行以下操作:
cy.route
对API请求进行存根以返回已知值如果要测试应用程序的行为的响应值范围不同,请编写一组测试,每个值一个。
答案 1 :(得分:0)
如果您只想阅读回复,则可以使用onReponse
in cy.server
:
[0,1,2,3].reduce((acc, val, index) => {
console.log(index);
return acc;
}, 0);