我在我的测试环境中使用superagent和jasmine-ajax(带有 jasmine 适配器的业力)。
在尝试模拟 superagent 将处理的响应时,我注意到一个与响应标头区分大小写有关的问题。
测试代码:
it('should parse the response as json', function() {
var response = '{ "foo" : "bar" }';
superagent.get('/some/url', function(
expect(response.body).toEqual({ foo: "bar" });
});
jasmine.Ajax.requests.mostRecent().response({
status: 200,
// uncomment following line to make this test pass
// responseHeaders: { "content-type" : "application/json" },
responseText: response
});
});
在 superagent.js 行中 ~695 有:
this.header['content-type'] = this.xhr.getResponseHeader('content-type');
在 mock-ajax.js 行 ~175 有
this.responseHeaders = response.responseHeaders ||
{"Content-type": response.contentType || "application/json" };
因此,显然在每个各自的库中,大小写存在差异,但是根据规范,我所做的所有研究都表明该字段不区分大小写。我认为这可能是 PhantomJS 的问题,但我也尝试过使用 Chrome,但存在同样的问题。
任何见解将不胜感激。