延迟 Cypress 中的拦截响应

时间:2021-04-15 10:02:41

标签: reactjs cypress

我正在编写 cypress 测试,我想测试我们程序的一项功能,该功能将在数据开始出现时显示。这可能是一个包含数百个元素的列表,为了加快速度,我们将请求分解为多个请求。

第一个请求将获取前 50 个项目,第二个请求将获取接下来的 100 个,以此类推

我想确保在第一个请求返回后,列表包含 50 个项目,而在第二个请求返回后,列表包含 150 个项目。

我不知道该怎么做,可靠地延迟拦截响应,以便我可以返回前 50 个,检查列表长度,然后允许更多数据进入。

这是我目前所拥有的:

const baseUrl = 'https://example.io/listData*'
const document = 'public_document_10101'

cy.intercept(
  {
    url: baseUrl,
    query: {
      limit: '50',
      'document': document
    },
  },
  { fixture: 'first-response.js' }
).as('firstResponse')

cy.intercept(
  {
    url: baseUrl,
    query: {
      limit: '100',
      skip: '50',
      'document': document
    },
  },
  { fixture: 'second-response.js' }
).as('secondResponse')

我不相信像 cy.wait('@firstResponse') 这样的东西会做我想做的事,因为这根本不会阻止第二个返回。我愿意使用某种延迟,但是如果能等到我说出来之前完全阻止它,那就太好了。

1 个答案:

答案 0 :(得分:2)

这看起来像您想要的功能Throttle or delay response all incoming responses

insert

或者 Static Response object 带有fixture 属性和delay 属性

SERVICE