我正在使用mocha和chai测试我的代码。我的代码如下所示:
let mongoose = require("mongoose");
let Item = require('./../model/items.js');
let chai = require('chai');
let chaiHttp = require('chai-http');
let server = require('../app.js');
let should = chai.should();
chai.use(chaiHttp);
describe('Items', () => {
beforeEach((done) => {
Item.remove({}, (err) => {
done();
});
});
describe('/GET item', () => {
it('it should GET perticular item', (done) => {
chai.request("http://localhost:3000")
.get('/foodtrucks/items?foodtruck_id=594f908042357813bc9d198d')
.end((err, res) => {
res.body.should.have.property('status').eql('200');
res.body.should.have.property('message');
res.body.should.have.property('data').should.
be.a('object').should.have.property('_id');
done();
});
});
});
});
我得到的回应是:
{
"status": "200",
"message": "Item List",
"data": {
"_id": "594f908042357813bc9d198d",
"foodtruck_logo": "",
"foodtruck_img": "",
"foodtruck_tag": "best restaurent in the world",
"foodtruck_name": "world in a box",
"item_list": [
{
"_id": "594f9b4e8df2042df02d58aa",
"item_img": "https://myWebsite.com/item_img-1499429774105.jpeg",
"item_price": 5.99,
"item_discount_price": 4.55,
"item_category": "Chicken",
"item_description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus volutpat urna nec placerat rhoncus.",
"item_tag": "",
"item_name": "chilli chicken",
"no_of_likes": 1,
"item_quantity_ordered": 1,
"item_stock": 2,
"item_illustrations": [
"spicy",
"non-veg"
]
},
.....
]
}
}
第res.body.should.have.property('data').should.be.a('object').should.have.property('_id')
行给了我错误。有什么错写的吗?
答案 0 :(得分:2)
由于修改should
的方式,您无法嵌套Object.prototype
。
相反,请使用以下内容:
res.body.should.have.property('data')
.which.is.an('object')
.and.has.property('_id')