2016-10-19 9 views
4

私は.toEqual()は、プレーンのオブジェクトのすべてのフィールドの平等をチェックすることを得る:jest.js内の要素位置を無視する配列等価一致関数はありますか?

expect(
    {"key1":"pink wool","key2":"diorite"} 
).toEqual(
    {"key2":"diorite","key1":"pink wool"} 
); 

だから、これが通過します。

しかし、同じことは配列のために真実ではありません。

expect(["ping wool", "diorite"]).toEqual(["diorite", "pink wool"]); 

かかわらず、その要素の2つの配列の等価性をテストすること、すなわち、冗談のドキュメントでこれを行いマッチャー機能があるように思えません。ポジション。ある配列内の各要素を他の要素内のすべての要素に対してテストする必要がありますか?それとも別の方法がありますか?

答えて

4

は順序を比較することなく、配列を比較するための組み込みメソッドがありませんが、あなたは、単に比較を行う前に.sort()を使用して配列をソートすることができます。

expect(["ping wool", "diorite"].sort()).toEqual(["diorite", "pink wool"].sort());` 

あなたはthis fiddleの例を確認することができます。

0

QUnitを使用すると、オブジェクト

の違いについては詳細を取得することはありませんが、代わりにあなたがtoBeTruthyマッチャを使用して

expect(isEqual(1,2)).toBeTruthy() 

を強調する可能性がdeepEqual機能 https://api.qunitjs.com/assert/deepEqual

を持っています

関連する問題