1

我正在用 cypress 编写一个集成测试,并且遇到了 minimatch 模式的问题。

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

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

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

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

我可以得到一些帮助吗?谢谢。

4

1 回答 1

3

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

用法

RouteMatcher对象中,您可以指定一个path属性。以下是该path物业的描述:

路径属性

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

所以你想要的是:

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

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

在我看来,赛普拉斯在cy.routecy.intercept方法之间的这种细微变化在第一次运行时很奇怪并且有点出乎意料。

于 2021-02-05T04:56:14.017 回答