赛普拉斯:如何从别名获得第四个请求的响应?

Cypress: How to get response of fourth request from alias?

我有一个拦截器正在收到一个 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