我需要在验收测试中测试服务器错误(Express),但这些错误不能(或不应该)与响应一起发送,例如:
Error: Can't set headers after they are sent.
通过使用错误处理程序捕获错误并响应 5XX 状态码将提供有价值的反馈信息,但问题在于头已经被发送。
这种错误可能是非关键性的,很难发现,通常是从日志中找出来的。
规范是
it('should send 200', function (done) {
request(app).get('/').expect(200, done);
});
已测试的应用程序是:
app.get('/', function (req, res, next) {
res.sendStatus(200);
next();
});
app.use(function (req, res) {
res.sendStatus(200);
});
在类似情况下,Express app
实例和请求测试库(如Supertest)之间进行通信的最合适方式是什么?
该问题并不限于Supertest。如果有其他能够解决Supertest无法解决的问题的软件包,也可以考虑使用。