express api声明未正确执行

问题描述 投票:0回答:1

我有一个测试用例,如下所示

describe('Readings', () => {
describe('GET/ Readings', () => {
    it('It Should Get 10 Readings', (done) => {
        chai.request(server)
            .get('/')
            .end((err, res) => {
                (res).should.have.status(200);
                console.log(res);
                ([{ "_id": "25.12.2019, 2:20:55 PM", "date": "25.12.2019", "kilometers": -77.7, "__v": 0 }]).should.be.an('array');
                (res.body).should.be.an('array');
                (res.body.length).should.be.eql(1);
                done();
            });
    });
});

虽然我使用mocha执行此测试用例,但console.log之后的语句正确声明,但是res.body的相同输出未声明为数组。出现以下错误

Uncaught AssertionError: expected '[{"_id":"25.12.2019, 2:20:55 PM","date":"25.12.2019","kilometers":-77.7,"__v":0}]' to be an array
  at chai.request.get.end (test\index-test.js:16:42)
  at Test.Request.callback (node_modules\superagent\lib\node\index.js:716:12)
  at parser (node_modules\superagent\lib\node\index.js:916:18)
  at IncomingMessage.res.on (node_modules\superagent\lib\node\parsers\json.js:19:7)
  at endReadableNT (_stream_readable.js:1145:12)
  at process._tickCallback (internal/process/next_tick.js:63:19)

我在这里做错了吗?我是为Express REST API编写测试用例的新手。

express mocha chai
1个回答
0
投票

更改

res.send(200).json(data);

to

res.json(data);

默认情况下为res.json()响应200为我工作。

© www.soinside.com 2019 - 2024. All rights reserved.