模拟在测试中获取重定向

时间:2016-11-27 11:02:20

标签: javascript unit-testing redirect fetch sinon

我正在尝试使用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),但它会创建重定向响应和后续响应。浏览器透明地返回的那个。

0 个答案:

没有答案