如何在 cy.intercept() 中的 glob 上使用特定的 url?
How to use a specific url over a glob in cy.intercept()?
我有两个拦截:
cy.intercept(
'GET',
'**/foo/*',
{
fixture: 'foo.json'
}
)
和
cy.intercept(
'GET',
'**/foo/bar',
{
fixture: 'bar.json'
}
)
我总是从第一次拦截中得到响应。更改它们在代码中的顺序并不重要。我做错了什么?
如何通过 glob 获得特定 url 的响应?
您可以根据响应有条件地 return 不同的灯具,using req.reply()
cy.intercept(
'GET',
'**/foo/*',
(req) => {
req.reply({
status: 200,
fixture: req.url.endsWith('/bar') ? 'bar.json' : 'foo.json'
});
});
在上面,我们正在做一个简单的三元来确定是 return bar.json
还是 foo.json
。如果有更复杂的逻辑,您可以将该部分提取到 req.reply()
.
以上的常量
我有两个拦截:
cy.intercept(
'GET',
'**/foo/*',
{
fixture: 'foo.json'
}
)
和
cy.intercept(
'GET',
'**/foo/bar',
{
fixture: 'bar.json'
}
)
我总是从第一次拦截中得到响应。更改它们在代码中的顺序并不重要。我做错了什么?
如何通过 glob 获得特定 url 的响应?
您可以根据响应有条件地 return 不同的灯具,using req.reply()
cy.intercept(
'GET',
'**/foo/*',
(req) => {
req.reply({
status: 200,
fixture: req.url.endsWith('/bar') ? 'bar.json' : 'foo.json'
});
});
在上面,我们正在做一个简单的三元来确定是 return bar.json
还是 foo.json
。如果有更复杂的逻辑,您可以将该部分提取到 req.reply()
.