如何用supertest检查不存在的头字段?

时间:2015-10-09 11:38:13

标签: node.js express supertest

如果我像这样设置express.js:

app.set("x-powered-by", false);

如何测试?

.expect('X-Powered-By', '', done)

会抛出错误:Error: expected "X-Powered-By" header field

.expect('X-Powered-By', null, done)

也行不通。

谢谢!

2 个答案:

答案 0 :(得分:1)

这是您需要的断言(使用Jest):

.expect((res) => expect(res.headers['X-Powered-By']).toBeUndefined())

答案 1 :(得分:0)

我建议按如下方式创建自定义验证:

it('should validate header is not present.', function(done){
  request
    .get('/path/to/your/resource')
    .end(function(error, response){
      if (error) {
        return done(error);
      }
      // Here is where we identify is header exists or not
      var isHeaderPresent = response.header['header-to-validate'] !== undefined;
      isHeaderPresent.should.be.False();
      done();
    });
});

另请注意,此示例使用should库进行验证。