是否可以在supertest的错误信息中添加信息

Is it possible to add information to the error message in supertest

我正在使用 supertest 和 mocha 来测试 nodejs express 应用程序。一切都很好,我想要更多描述性的错误消息。这并不是说这些消息目前很糟糕,它们不是。我只是想了解更多信息。

例如:

it('should successfully post my data and return a valid JSON', function(done) {
  .post(url)
  .set('Accept', 'application/json')
  .expect('Content-Type', /json/)
  .send(data)
  .expect(201, resultBody)
  .end(function(err, res) {
    if (err) return done(err);
    done();
  });
});

如果发生错误,导致 resultBody 与实际结果不匹配,它会打印出一条很好的 + expected - actual 消息。但我还想查看其他信息(可能是身份验证或 header)。

我目前的解决方案是执行以下操作:

  .end(function(err, res) {
    if (err) {
      console.log(res.headers);
      console.log(res.statusCode);
      console.log(res.body);
      return done(err);
    }
    done();
  });

但是 console.log 消息与“it”消息内联,在 passing/pending/failing 消息之前而不是实际错误。

是否可以不费吹灰之力就在错误消息中加入额外的信息?

您可以使用 Language Chains of Chai in expect and should adding Assertion Styles:

修复它
var foo = false;
expect(foo, 'foo must be true').to.be.true;
//AssertionError: foo must be true: expected false to be true