是否可以在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
我正在使用 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