我一直在考慮爲控制器控制器實現單元測試,特別是圍繞測試集合。在MSDN example上,使用CollectionAssert.Contains()
確認對象是否出現在列表中。CollectionAssert.Contains(myList,myItem)!= Assert.IsTrue(myList.Contains(myItem))
我有一個List<myObject>
其中myObject
器具IEquatable
(即實施Equals()
,使得List<myObject>.Contains()
能夠正確地辨別是否存在(或在列表中myObject
類型的對象)的不存在。
的但是,似乎並沒有調用Equals()
所以我想知道它是否適用於簡單的數組? 如果不是,它如何能夠比較自定義對象?
我只是在這種情況下將我的斷言改爲Assert.IsTrue(myList.Contains(myObjectInstance))
。
RE:您的評論。這也是我的觀點!這兩種方法有不同的行爲,所以你必須以某種方式來解釋。要麼你可以調用'IsTrue(myList.Contains(item))',或者覆蓋'Equals()'的'object'版本,並將它委託給你的'IEquatable'版本。 – dlev