如何用超级测试检查不存在的头字段?

how to check not exist header field with 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)

也不行。

谢谢!

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

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 库进行验证。

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

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