2016-04-01 17 views
0

私はMS Testから始まり、次のテストを実行しようとしています。私は以下の部分が私に失敗を与えてくれるのを見ています。これはかなり驚くべきことです:MSテストでコレクションが失敗する

[TestMethod] 
    public void EachRetailerPassedToBuilderIsReturnedInVmList() 
    { 
     List<string> mockRetailers = new List<string> { "Asda", "Tesco" }; 

     Assert.AreEqual(new List<string>{ "Asda", "Tesco"}, mockRetailers); 

    } 

私は間違っていますか?

結果メッセージ:Assert.AreEqualに失敗しました。 予定:

答えて

1

問題は、List<T>.Equalsはデータの要素単位のチェックを提供しないということです。参照のみを比較します。速い解決策は、各要素のデータとAssert.Equalsを反復することです。リストのサイズがあらかじめ等しいかどうかをチェックすることを忘れないでください。

適切な結果を得るためにCollectionAssert.AreEqualを使用することも可能です。

How to compare Lists in Unit Testing

+0

http://stackoverflow.com/questions/11055632/how-to-compare-lists-in-unit-testing – Turo

+0

これは私が前に見ていなかった重複問題は、あるように実際に見えます。 CollectionAssertが私のために働いた。 – Turo

+0

ああ。私はCollectionAssertについて完全に忘れてしまった。 – greenshade

関連する問題