3

我在我的测试环境中使用superagentjasmine-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,但存在同样的问题。

任何见解将不胜感激。

4

0 回答 0