我有一个节点应用程序,它使用 express 公开一个简单的 REST api。它包括一个 GET 端点,它应该从 mongo 数据库返回一个 JSON 数据数组。从 Postman 测试时,它可以完美运行。
api.get('/queries', (req, res) => {
db.getQueries().then(docs => {
res.json({ queries: docs });
})
});
我想以编程方式对其进行测试,因此使用 chai-http 设置了测试:
describe('When database contains zero queries', () => {
it('/GET queries should return 0 as the body length', (done) => {
return chai.request(queriesApi).get('/queries').then((result) => {
result.should.have.status(200);
result.body.should.be.a('array');
result.body.length.should.be.eql(0);
done()
});
});
});
但是,在测试期间我收到错误:
TypeError: res.json is not a function
在 GET 处理程序中检索到数据并准备好发送回调用方的位置。
我无法理解在 Postman 中测试此端点和通过单元测试之间的区别。我已经逐步完成了代码,并且在两个测试(邮递员和单元)res
中都是 aServerResponse
并且req
是IncomingMessage
.