我有一个节点应用程序,它使用express公开了一个简单的REST api。它包含一个GET端点,该端点应从mongo数据库返回一个JSON数据数组。经邮递员测试后,它可以完美工作。
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
是ServerResponse
,req
是IncomingMessage
。