Javascript 在Cypress测试中等待最近的路由匹配

Javascript 在Cypress测试中等待最近的路由匹配,javascript,xmlhttprequest,cypress,Javascript,Xmlhttprequest,Cypress,我正在用Cypress测试一个表单向导应用程序,该应用程序进行了大量我无法存根的API调用。几乎所有的问题都会立即解决,或者对流程无关紧要,但是有一些问题会超过我需要等待的超时时间。考虑以下事项: cy.route('api/**').as('api'); request('api/api-1'); doSomething(); cy.wait('@api'); // works as expected. request('api/api-2'); // resolves async, ti

我正在用Cypress测试一个表单向导应用程序,该应用程序进行了大量我无法存根的API调用。几乎所有的问题都会立即解决,或者对流程无关紧要,但是有一些问题会超过我需要等待的超时时间。考虑以下事项:

cy.route('api/**').as('api');

request('api/api-1');
doSomething();
cy.wait('@api'); // works as expected.

request('api/api-2'); // resolves async, timing doesn't matter, don't need to wait
doSomething();

request('api/api-3');
doSomething();
cy.wait('@api'); // will resolve immediately for api/api-2 instead of api/api-3.
我不希望必须对每个需要单独等待的特定API调用都使用别名。测试中未等待的请求发生在页面的后台,因此我不能简单地在每个请求之后添加等待


TLDR;有没有一种方法可以将与给定路由别名匹配的最新请求作为等待的目标,而不是从队列中顺序解析它们?

您可以使用多个具有不同别名的
cy.route()
,然后使用
cy.get()
只有在响应没有准备好的情况下才会等待。我最终为测试中需要等待的每个可能端点创建了路由,因为我认为这应该是可行的,所以这是开放的。