我正在使用supertest和mocha来测试nodejs express app。一切都很好,我希望我能提供一些更具描述性的错误信息。这并不是说这些消息目前是坏的,他们不是。我还想了解更多信息。
例如:
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
消息。但我还想看到其他信息(可能是身份验证或标题)。
我目前的解决方案是执行以下操作:
.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"内联。消息,在传递/挂起/失败消息之前,而不是实际错误。
是否有可能在没有太多额外努力的情况下使用错误消息提供额外信息?
答案 0 :(得分:3)
您可以使用expect
中的Language Chains和should
添加Assertion Styles来修复它:
var foo = false;
expect(foo, 'foo must be true').to.be.true;
//AssertionError: foo must be true: expected false to be true