我有一个返回new Request
对象的函数;
import * as _url from 'url';
// pathname starts with '/content/'
const isContentUrl = (path) => /^\/content\//.test(path);
export default function(url) {
let urlObj = _url.parse(url);
if (isContentUrl(urlObj.pathname)) {
urlObj.pathname = `/offline${urlObj.pathname}`;
}
return new Request(_url.format(urlObj), {
credentials: 'same-origin',
headers: {
'x-requested-with': 'sw'
}
});
}
现在我正在为这个功能编写单元测试,虽然我知道实际上 实际在这里有很多变化,但是比如说标题可能会因为某些原因而改变,如何我可以断言请求对象的一部分,如标题,凭据或URL吗?
有没有一种很好的方法可以解析它进行测试?
理想情况下,我想做一些像
这样的事情it('should return a Request object with the correct headers', () => {
const url = '/content/2c509c50-e4ba-11e6-9645-c9357a75844a';
const request = offlineContent(url);
const result = request.headers;
const expected = {'x-requested-with': 'sw'};
expect(result).to.eql(expected);
});
在我的测试中
答案 0 :(得分:0)
假设请求request HTTP客户端,返回的对象是定义here的Request构造函数的实例。
如果您按照代码进行操作,则会看到提供的标头只能通过object member提供,因此标题可以通过javascript轻松地自动跟踪self
附加的其他成员。
此外,调度请求的http模块可以self.httpModule
获得,并且可以通过符合node http module的实现进行模拟,并且可以通过{{{{}}拦截通过库调度的请求。 3}}
答案 1 :(得分:0)