我正在尝试使用fetch API执行重定向请求后测试行为。
我一直在使用sinon来模仿window.fetch
并让它返回所需的响应。以下是我的工作,简化:
windowFetch = sinon.stub(window, 'fetch');
windowFetch.withArgs('http://example.com/resource')
.returns(Promise.resolve(new Response(body, {
status: 200,
headers: new Headers(headers)
})));
这适用于标准回复。要处理重定向,我想访问Response#url
属性,但我没有找到在单元测试中设置它的方法。
使用new Response()
构造函数设置它是不可能的,它是只读的,所以我也不能这样做。
最后,我尝试调用Response.redirect(toAddr)
,但它会创建重定向响应和后续响应。浏览器透明地返回的那个。