在赛普拉斯中,可以对XHR响应进行存根,但是我想捕获并修改JSON响应。
https://docs.cypress.io/guides/guides/network-requests.html#Stub-Responses https://docs.cypress.io/api/commands/route.html#With-Stubbing
我找不到一个很好的例子来解释这一点。
在我的应用中,有一个对API的调用:
/ isHuman
,响应为:
{“ isHuman”:true}
我想拦截此呼叫,并将 true 和另一个测试设为 false
有人可以提供吗?
最后修改: 在localhost(我定义baseURL- localhost:3123 )上测试应用程序,但是有对不同域( https://api.app.com/isHuman )的api调用。
我需要更改该xhr呼叫的响应。
答案 0 :(得分:0)
您可以在同一it()
内多次重新定义相同的url:
it('should od whatever', () => {
cy.route('GET', '/isHuman', { "isHuman": true });
/* trigger some requests */
cy.route('GET', '/isHuman', { "isHuman": false });
/* trigger other requests */
});
答案 1 :(得分:0)
it('modifies the response from the server to insert Kiwi', () => {
cy.intercept('favorite-fruits', (req) => {
req.reply((res) => {
// add Kiwi to the list received from the server
console.log('original response from the server is %s %o', typeof res.body, res.body)
const list = res.body
list.push('Kiwi')
res.send(list)
})
})
cy.visit('/')
// check if Kiwi is the last fruit
cy.get('li').should('have.length.gt', 3)
.last().should('contain', 'Kiwi')
})
以下是代码来源: