チャイは、配列に特定の要素が含まれているかどうかをアサートする素晴らしい方法があります
expect([1,2,3]).to.include(2);
オブジェクトの配列が与えられた場合、私が欲しいのは似たようなものです。
expect([{a:1},{b:2}]).to.include({b:2});
これは可能ですか?
Chai Thingsプラグイン を見てください、それはあなたが望むことをします:
[{a:1},{b:2}].should.include.something.that.deep.equals({b:2})
コレクションの代替の順序に依存しないアプローチは次のとおりです。
expect([1, 2, 3]).to.include.members([3, 2, 1])
これをdeep
フラグと一緒に使用して、オブジェクトを比較することもできます。
expect([{ id: 1 }]).to.deep.include.members([{ id: 1 }]);
expect({foo: 'bar', width: 190, height: 90}).to.include({ height: 90, width: 190 })
オブジェクトの配列には、deepメソッドを使用できます。
expect([{a:1},{b:2}]).to.deep.include({b:2}); //It will pass
ここでdeepメソッドを使用したその他の例を見つけることができます: http://chaijs.com/api/bdd/#method_deep
ここで覚えておくべき主なポイントは、参照型についてです。