两条路径的最小匹配模式,其中一条路径是另一条路径的前缀

Minimatch pattern for two paths where one is prefix of the other

我正在用 cypress 编写集成测试,但遇到了最小匹配模式的问题。

我有两个端点需要存根。 /users/1/users/1/profile.

我尝试用 cy.intercept() 模拟这两个端点的方式如下。 对于第一个 url、/users/1,我尝试了 cy.intercept('GET', '/users/1', {})

对于 url , /users/1/profile 部分,我尝试了 cy.intercept('GET', '/users/1/profile', {}).

问题是第一个模式拦截了两次。

我能得到一些帮助吗??谢谢。

我第一次使用cy.intercept的时候也遇到过这个问题。解决方案是将 RouteMatcher 对象传递给该方法。特别是,您需要使用下图中的最后一个方法签名:

RouteMatcher对象中,可以指定一个path属性。这是 path 属性:

的描述

本质上,使用 RouteMatcher 对象的 path 属性 对给定的字符串进行精确匹配,而第一个和第二个中的 url 参数方法签名对给定的字符串进行子字符串匹配。

那么您需要的是:

cy.intercept(
    {method: 'GET', path: '/users/1'},
    {body: {}}
)

cy.intercept(
    {method: 'GET', path: '/users/1/profile'},
    {body: {}}
)

在我看来,cy.routecy.intercept 方法之间 Cypress 的这种细微变化很奇怪,在第一个 运行-through 中有点出乎意料。