2

我有一个节点应用程序,它使用 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并且reqIncomingMessage.

4

0 回答 0