Javascript Cypress-cy.intercept捕获错误的url
我试图用Javascript Cypress-cy.intercept捕获错误的url,javascript,cypress,Javascript,Cypress,我试图用截取来模拟我的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/Cont
截取来模拟我的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})
参考
您可以提供要匹配的URL的子字符串
//将匹配包含“用户”子字符串的任何请求,如
//获取/用户?\u限制=3,发布/用户
cy.intercept('用户')
所以'http://localhost:5000/contacts“
匹配,因为它是第一个定义的,部分匹配适用
您可以颠倒截取的顺序,首先设置更具体的URL(有点像SPA上的路由)
或者,看一看
您可以使用javascript优化响应
cy.intercept('GET','http://localhost:5000/contacts',(请求)=>{
const isContactById=req.url.split('/')//拆分为多个部分
.pop()//取最后一部分
.startsWith('Contact-');//检查是否有id前缀
const bodyStub=isContactById?dataARandomId:dataMultiple;
请求回复(200,正文存根);
})