gpt4 book ai didi

javascript - Cypress - cy.intercept 捕获错误的 url

转载 作者:行者123 更新时间:2023-12-04 08:06:15 26 4
gpt4 key购买 nike

我尝试用 intercept 模拟我的 API 路由,但我不知道为什么它触发了错误的路由(我在 cypress@6.2.1 上)

我有两个拦截:

一个用于/contacts,第二个用于/contacts/Contact-ARandomId

cy.intercept('GET', 'http://localhost:5000/contacts', {statusCode: 200, body: dataMultiple})

cy.intercept('GET', 'http://localhost:5000/contacts/Contact-ARandomId', {statusCode: 200, body: dataARandomId})

image image

最佳答案

引用 Matching URL

You can provide a substring of the URL to match

// will match any request that contains "users" substring, like
// GET /users?_limit=3 and POST /users

cy.intercept('users')

所以 'http://localhost:5000/contacts' 匹配,因为它是第一个定义的,并且适用部分匹配。

您可以颠倒拦截的顺序,首先设置更具体的 URL(有点像 SPA 上的路由)。

或者,看看 Set an alias dynamically .

您可以使用 javascript 来优化响应

cy.intercept('GET', 'http://localhost:5000/contacts', (req) => {

const isContactById = req.url.split('/') // split into parts
.pop() // take last part
.startsWith('Contact-'); // check if has id prefix

const bodyStub = isContactById ? dataARandomId : dataMultiple;
req.reply(200, bodyStub);
})

关于javascript - Cypress - cy.intercept 捕获错误的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66207621/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com