2017-07-21 7 views
0

私は、Mochaを使ってNode.jsのWebアプリケーションのルータをテストしていますが、1つのアサートをチェックインする方法があるかどうかは疑問でしたifオブジェクトには一定の特性があります。レスポンスのボディに特定のプロパティがあるかどうかを確認する方法

は今のところ、これは私がやっているものです:

describe('GET /categories', function() { 
     it('should respond with 200 and return a list of categories', function (done) { 
      request.get('/categories') 
       .set('Authorization', 'Basic ' + new Buffer(tokenLogin).toString('base64')) 
       .expect('Content-Type', /json/) 
       .expect(200) 
       .end(function (err, res) { 
        if (err) return done(err); 
        expect(res.body).to.be.an.instanceof(Array); 
        expect(res.body).to.have.lengthOf.above(0); 
        expect(res.body[0]).to.have.property('id'); 
        expect(res.body[0]).to.have.property('category'); 
        expect(res.body[0]).to.have.property('tenant'); 
        done(); 
       }); 
     }); 
}); 

私はモカのドキュメントで検索しましたが、私は、私が欲しいものを見つけることができませんでした。

答えて

0

私はあなたがchaiを使用していることを前提としています

expect(res.body) 
    .to.be.an.instanceof(Array) 
    .and.to.have.property(0) 
    .that.includes.all.keys([ 'id', 'category', 'tenant' ]) 

または:

expect(res) 
    .to.have.nested.property('body[0]') 
    .that.includes.all.keys([ 'id', 'category', 'tenant' ]) 

res.bodyが実際に配列の場合、後者は実際にチェックしませんが)

+0

感謝を!これは私が探していたものです。 – GianMS

関連する問題