我有一个测试用例,如下所示
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编写测试用例的新手。
更改
res.send(200).json(data);
to
res.json(data);
默认情况下为res.json()响应200为我工作。