web-dev-qa-db-ja.com

Mocha、Chai:オブジェクトがオブジェクトの配列に含まれていることを表明します

チャイは、配列に特定の要素が含まれているかどうかをアサートする素晴らしい方法があります

expect([1,2,3]).to.include(2);

オブジェクトの配列が与えられた場合、私が欲しいのは似たようなものです。

expect([{a:1},{b:2}]).to.include({b:2});

これは可能ですか?

18
mck

Chai Thingsプラグイン を見てください、それはあなたが望むことをします:

[{a:1},{b:2}].should.include.something.that.deep.equals({b:2})
18

コレクションの代替の順序に依存しないアプローチは次のとおりです。

アレイ

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 })
12
lfender6445

オブジェクトの配列には、deepメソッドを使用できます。

expect([{a:1},{b:2}]).to.deep.include({b:2});   //It will pass

ここでdeepメソッドを使用したその他の例を見つけることができます: http://chaijs.com/api/bdd/#method_deep

ここで覚えておくべき主なポイントは、参照型についてです。

6
Jyothi