結果のテストを、REST Mongoデータベースオブジェクトの配列を返すエンドポイントに設定しています。
_[{_id: 5, title: 'Blah', owner: 'Ted', description: 'something'...},
{_id: 70, title: 'GGG', owner: 'Ted', description: 'something'...}...]
_
テストで確認したいのは、返される配列に、返される特定のタイトルが含まれていることです。 Chai/ Chai-Things を使用しても何も機能しないようです。 res.body.savedResults.should.include.something.that.equals({title: 'Blah'})
error outのようなものは、レコードオブジェクトにタイトルだけでなく他のキーと値が含まれていると仮定しています。
私がやりたいことをさせる方法はありますか?タイトルが配列内にあることを確認するだけで、他のデータ(IE _id)が何であるかは気にしません。
ありがとう
これは私が通常テスト内で行うことです:
var result = query_result;
var members = [];
result.forEach(function(e){
members.Push(e.title);
});
expect(members).to.have.members(['expected_title_1','expected_title_2']);
返される配列の順序がわかっている場合は、次のこともできます。
expect(result).to.have.deep.property('[0].title', 'expected_title_1');
expect(result).to.have.deep.property('[1].title', 'expected_title_2');
前述のとおり、 here 次のコードは [email protected] および chai-things で動作します。このアプローチの自然な読みやすさが大好きです。
var chai = require('chai'),
expect = chai.expect;
chai.use(require('chai-like'));
chai.use(require('chai-things')); // Don't swap these two
expect(data).to.be.an('array').that.contains.something.like({title: 'Blah'});