2016-05-19 2 views
-2

MSTestをがCollectionAssertクラスを提供して同じ要素を含んでいて、私は返さ辞書を比較していますこの質問に基づいて一致した私の期待:しかし、私は意図的に返されるバージョンとは異なる順序で私の辞書を埋め.NET Dictionaries have same keys and values, but aren't "equal"テストは2つの辞書が

が、 - 私は自分自身をロールバックする必要があるのですかMSTestをは外の何かを提供しない

CollectionAssert.AreEqual((ICollection)expected, (ICollection)ret)

これは非常に良い平等テストを思えません。私が呼ぶときとまったく同じ要素を持つ...今CollectionAssert.AreEqualは失敗しますb牛?

答えて

2

同じクラスにAreEquivalent()という別のメソッドがあります。

パラメータとして送信する2つのICollectionオブジェクトが同じ量の同じ要素を持つ場合、これはあなたにtrueを返します。この場合、順序は関係ありません。これは、AreEqual()とAreEquivalent()の最大の違いです。

以下は、MSDNのページから公式の説明を見つけることができます。

"指定されたコレクションが同等であることを検証します。同じ数量の同じ要素を任意の順序で持つ場合、2つのコレクションは同等です。 "

あなたの呼び出しはAreEqual()の場合と同じです(下記参照)。

CollectionAssert.AreEquivalent((ICollection)expected, (ICollection)ret) 
2

あなたはAreEquivalentを使用することができます。

CollectionAssert.AreEquivalent((ICollection)expected, (ICollection)ret) 

このメソッドのテストをコレクションは、同じ量ではなく、任意の順序で同じ要素を持っている場合。

関連する問題