赛普拉斯不匹配路线

mun*_*ger 3 testing mocking cypress

我正在尝试编写一个模拟慢速 API 的 cypress 测试,所以在阅读了一些文档后我想出了这个:

before(function() {
    cy.server({delay: 5000});
});

beforeEach(() => {
    cy.route({
        method: "GET",
        url: "**/api/**"
    });
    cy.visit("http://localhost:9000");
});
Run Code Online (Sandbox Code Playgroud)

这应该会给所有请求添加 5 秒的延迟API,对吧?

我看到的问题是,即使有大量的调用,它也不匹配任何请求*/api/*。然而,cypress GUI 确实看到了路线......它只是不匹配。

这可能是什么原因造成的?

mar*_*rrs 5

如果您输入完整的路线(如 cypress 日志中所示),您可能会发现它有效。

看起来前瞻通配符并没有通过小型匹配很好地实现。它在 char 上很好地分隔,但在or/上则不太好,所以如果您尝试容纳查询字符串,这可能就是您遇到困难的地方。?#

Cypress.minimatch您可以在控制台中使用来查看发生了什么。有关如何执行此操作的更多信息,请参阅文档

Cypress 也接受正则表达式。类似的东西/\/api\//应该适合你。