如何模拟不同来源 URL 的相同请求(对于 TestCafe)
How to mock the same request of different origins URLs (for TestCafe)
我需要模拟同一个请求,该请求由 2 个不同的来源(url1、url2)发起。
但是唯一的一个请求(来自第一个来源 url1)被嘲笑了。
如何使用多个来源?
提前致谢。
const urlRegExp = new RegExp('/events');
const mock = RequestMock()
.onRequestTo(urlRegExp)
.respond({eenter code hererror: 'this request has been mocked'}, 500, {
'access-control-allow-origin': 'url1.com',
'access-control-allow-credentials': true
})
.onRequestTo(urlRegExp)
.respond({error: 'this request has been mocked'}, 500, {
'access-control-allow-origin': 'url2.com',
'access-control-allow-credentials': true
});
您需要修改您的 onRequestTo
调用。请查看 TestCafe 文档的 Filter With Predicate section。
const mock = RequestMock()
.onRequestTo(request => {
return request.url === 'http://example.com' &&
request.method === 'post' &&
request.isAjax &&
request.body.toString() === 'foo=bar';
})
.respond(/*...*/);
您可以将您的请求模拟设置为按请求 headers 过滤请求,例如主机、引用者、来源等。因此您需要为不同的请求编写不同的过滤器。
我需要模拟同一个请求,该请求由 2 个不同的来源(url1、url2)发起。 但是唯一的一个请求(来自第一个来源 url1)被嘲笑了。 如何使用多个来源? 提前致谢。
const urlRegExp = new RegExp('/events');
const mock = RequestMock()
.onRequestTo(urlRegExp)
.respond({eenter code hererror: 'this request has been mocked'}, 500, {
'access-control-allow-origin': 'url1.com',
'access-control-allow-credentials': true
})
.onRequestTo(urlRegExp)
.respond({error: 'this request has been mocked'}, 500, {
'access-control-allow-origin': 'url2.com',
'access-control-allow-credentials': true
});
您需要修改您的 onRequestTo
调用。请查看 TestCafe 文档的 Filter With Predicate section。
const mock = RequestMock()
.onRequestTo(request => {
return request.url === 'http://example.com' &&
request.method === 'post' &&
request.isAjax &&
request.body.toString() === 'foo=bar';
})
.respond(/*...*/);
您可以将您的请求模拟设置为按请求 headers 过滤请求,例如主机、引用者、来源等。因此您需要为不同的请求编写不同的过滤器。