首页 > 解决方案 > 赛普拉斯不匹配路线

问题描述

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

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

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

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

我看到的问题是它与任何请求都不匹配,即使有很多对*/api/*. 然而,柏树 GUI 确实看到了路线......它只是不匹配。

这可能是什么原因?

标签: testingmockingcypress

解决方案


如果你输入整个路由,就像它出现在 cypress 日志中一样,你可能会发现它有效。

minimatch 似乎没有很好地实现前瞻通配符。它在 char 上很好地划定界限,但在or/上不太好,因此,如果您尝试容纳查询字符串,这可能是您遇到困难的地方。?#

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

赛普拉斯也将接受正则表达式。类似的东西/\/api\//应该适合你。


推荐阅读