Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Cypress-cy.intercept捕获错误的url_Javascript_Cypress - Fatal编程技术网

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,正文存根);
})