Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.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()检查是否尚未进行调用?_Javascript_Testing_Cypress - Fatal编程技术网

Javascript Cypress:使用cy.intercept()检查是否尚未进行调用?

Javascript Cypress:使用cy.intercept()检查是否尚未进行调用?,javascript,testing,cypress,Javascript,Testing,Cypress,使用cy.intercept()截取(并存根)两个网络请求(到google tag manager),但希望在我的测试的早期进行测试,然后再调用它们 如何测试我拦截的两条路由是否尚未调用 谢谢 Intercept有一个routeHandler部分,它可以是一个函数 cy.intercept(路由匹配器,路由处理器?) routeHandler(字符串|对象|函数|静态响应) 该函数接收请求,在该函数内部,另一个函数可以接收响应, 看 cy.intercept('/integrations',(r

使用cy.intercept()截取(并存根)两个网络请求(到google tag manager),但希望在我的测试的早期进行测试,然后再调用它们

如何测试我拦截的两条路由是否尚未调用


谢谢

Intercept有一个routeHandler部分,它可以是一个函数

cy.intercept(路由匹配器,路由处理器?)

routeHandler(字符串|对象|函数|静态响应)

该函数接收请求,在该函数内部,另一个函数可以接收响应,

cy.intercept('/integrations',(req)=>{
//带有回调的req.continue()将向目标服务器发送请求
请求继续((res)=>{
//“res”表示真正的目标响应
//您可以在将“res”发送到浏览器之前对其进行操作
})
})
因此,在收到
req
或收到
res
的内部函数时,设置一个外部标志,并在测试中的一个或多个位置对其进行测试

//测试的顶部
让flag=false;
cy.intercept(“/my route”,(req)=>{
截取标志=真;
请求继续((res)=>{
//还是在这里
截取标志=真;
})
})
//稍后在测试中
cy.wrap(interceptFlag).should('eq',false);//尚未截获
//有东西触发了API调用
cy.wrap(interceptFlag).should('eq',true);//现在被拦截了

这是非常普遍的,如果你发布一些细节可以更具体。

什么样的模式,是等待一段时间,还是立即访问和测试?@AloysiusParker-可以是立即的。模式是,我们使用JS(ie)为web组件动态生成DOM元素,然后设置属性(即。-当设置attr时,我们ping一个API-因此希望在设置attr(无API ping)之前进行测试,然后在设置attr之后,API被ping…pung?…耶。。。