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

Hav*_*veF 9 node.js express supertest

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

app.set("x-powered-by", false);
Run Code Online (Sandbox Code Playgroud)

如何测试这个?

.expect('X-Powered-By', '', done)
Run Code Online (Sandbox Code Playgroud)

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

.expect('X-Powered-By', null, done)
Run Code Online (Sandbox Code Playgroud)

也不行。

谢谢!

MEM*_*ark 8

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

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


leo*_*fcx 6

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

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();
    });
});
Run Code Online (Sandbox Code Playgroud)

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