Cypress为API调用添加延迟

Cypress为API调用添加延迟,cypress,Cypress,我试图测试一个由竞争条件引起的bug,基于两个API调用中的哪一个首先返回。为此,我想创建一个Cypress测试,将其中一条路由延迟一两秒。我没有看到任何关于如何做到这一点的文件。有什么简单的方法吗?我尝试了stubing窗口。fetch但没有真正起作用。使用cy.route()选项,如下所述: 为了使本例使用“真实”数据,您可能只需记录要延迟的路由响应,方法是将其保存到fixture文件中,然后使用该数据存根路由。有一个例子是为记录写一个,将来事情可能会变得更好: 对不起,我应该说得更清楚些;

我试图测试一个由竞争条件引起的bug,基于两个API调用中的哪一个首先返回。为此,我想创建一个Cypress测试,将其中一条路由延迟一两秒。我没有看到任何关于如何做到这一点的文件。有什么简单的方法吗?我尝试了stubing
窗口。fetch
但没有真正起作用。

使用
cy.route()
选项,如下所述:


为了使本例使用“真实”数据,您可能只需记录要延迟的路由响应,方法是将其保存到fixture文件中,然后使用该数据存根路由。有一个例子是为记录写一个

,将来事情可能会变得更好:

对不起,我应该说得更清楚些;我希望请求能正常通过,只是有一个延迟。我不想提供响应对象。这不是当前内置的。。。您不想存根响应有什么原因吗?因为我将所有其他响应发送到一个真正的(测试)服务器,如果我存根一个路由,我很可能必须存根所有(或很多),因为数据相互依赖。有一个解决方案,您基本上“记录”响应,并使用它存根cy.routeSure,但这并不一定能很好地扩展;快照在创建时可能是有效的,但数周或数月后,数据可能会发生足够的变化,以至于不再对齐,特别是因为它指向从生产中重新映像的暂存数据库。
cy.server()
cy.route({
  method: 'GET',
  url: '**/user/adam',
  status: 200,
  response: {
    user: {name: 'adam'}
  },
  delay: 2000
})
cy.route({
  method: 'GET',
  url: '**/user/jane',
  status: 200,
  response: {
    user: {name: 'jane'}
  },
  delay: 0
})