2017-07-21 8 views
1

私のコードはmochaとchaiでテストしています。AssertionError:{Object(__flags)}がプロパティ '_id'を持つと予想しました

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')は私にエラーを与えています。間違って書かれたものはありますか?

答えて

1

shouldを変更する方法のためにネストすることはできません。Object.prototype

代わりに、このようなものを使用します。

res.body.should.have.property('data') 
     .which.is.an('object') 
     .and.has.property('_id') 
関連する問題