У меня есть перехватчик, который получает запрос GET
для конечной точки, который происходит четыре раза.
cy.intercept(`endpoint/data*`).as(
'texasCounties'
);
Это происходит четыре раза видел здесь.
Единственный важный для меня в последнем запросе, однако, когда я жду ответа, он только привязывает первый, и я не могу получить доступ к телу ответа четвертого запроса. Вот что у меня есть до сих пор
cy.wait('@texasCounties').then((interceptor) => {
const res = interceptor.response.body
cy.log(res) //only print object for the first request but I need the fourth
})
Я пытался cy.wait('@texasCounties').eq(3)
получить четвертый запрос, но это не работает.
Кто-нибудь знает как это сделать?
Если вам нужен только последний вызов, вы можете переместить свой перехват непосредственно перед вызовом.
С вашей попыткой вы были близки к ответу. Вам нужно будет использовать .get('@alias')
, чтобы получить все перехваченные запросы и получить доступ к последнему, используя .its()
. Вот как это будет выглядеть.
// intercept and other test code
cy.get('@texasCounties.all') // this will get all four intercepted requests
.then(console.log) // if you want to log
.should('have.length', 4) // you can make assertions
.its(3) // to access the fourth request