express api 断言未正确执行
express api assertion is not executing correctly
我有一个测试用例如下
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);
至
res.json(data);
对我有用,因为 res.json() 默认响应 200。
我有一个测试用例如下
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);
至
res.json(data);
对我有用,因为 res.json() 默认响应 200。