测试状态码以外的响应标头字段的难度

时间:2014-04-23 23:48:27

标签: node.js express mocha

我正在使用Express框架。任务是从数据库中检索一个集合,并将自定义消息插入返回给客户端的响应头中(下面显示的Node.js代码可以工作,我可以在返回的头中看到我的自定义消息):

if (req.accepts('json')) {
    **res.header('Warning', 'my_customized_message');**
    res.header('Content-Type', 'application/json');
    res.send(res.locals.items, 200);
}

现在,我尝试使用" mocha"使用MOCHA对这一新增代码进行单元测试:

request = require('request');
should = require('should');

describe('GET /core/dbq/534e930204dd311822ec1c9d', function() {
    this.timeout(15000);
    it ('Check header message', function(done) {
        request.get('http://localhost:3001/ecrud/v1/core/dbq/534e930204dd311822ec1c9d', function(err, response, header) {
            response.statusCode.should.equal(200);                                     
            response.warning.should.equal('my_customized_message');   // Uncaught TypeError: Cannot read property 'should' of undefined
            done();
        } )
    } )
} )

如果我只测试response.statusCode,则没有问题。 MOCHA测试成功通过。但是,如果我测试了response.warning,我会收到错误消息,说明该属性应该'没有定义(我运行npm应该--save-dev)。看起来"警告"不被视为"响应"的字段。但是,"警告"是反应领域之一。

如果我尝试测试response.contentType,则会发生同样的错误。我想" Content-Type"是一个非常着名的响应头字段。无论如何,我真正感兴趣的是测试"警告"头。请帮忙。谢谢。

1 个答案:

答案 0 :(得分:2)

我认为你想要这个(responsehttp.IncomingMessage):

response.headers.warning.should.equal('my_customized_message');