0
我正在使用xunit進行單元測試,我有一個期望對象列表和一個實際對象列表。如何比較兩個列表中每個對象(日期)的特定元素以查看它們是否相等?我找到了Assert.Collection方法,但我無法弄清楚它如何比較兩個列表的內容。比較兩個列表與Xunit
我正在使用xunit進行單元測試,我有一個期望對象列表和一個實際對象列表。如何比較兩個列表中每個對象(日期)的特定元素以查看它們是否相等?我找到了Assert.Collection方法,但我無法弄清楚它如何比較兩個列表的內容。比較兩個列表與Xunit
你不需要XUnit的細節。這個問題可以通過使用LINQ來解決。
要從列表進行比較的元素簡單地使用:
Assert.True(isList[1] == shouldList[1]);
只是內容直接訪問列表。如果你不知道的指數,你可以使用LINQ:
Assert.True(shouldList.Any(x => x == isList[1]);
這將檢查shouldList
包含等於isList
第二元素的任何元素。
如果你想比較,如果該列表中的內容是相同的,不知道該序列,使用類似這樣的:shouldList
Assert.True(shouldList.All(shouldItem => isList.Any(isItem => isItem == shouldItem)));
此檢查所有項目,在isList
至少一個項目是相同的。
備註:
我用==
操作比較。如果這項工作取決於列表的內容。你說你比較日期,這裏equals
將檢查平等,而不是身份。對於大多數參考類型,equals
只會比較身份。在這裏,您可以覆蓋默認的equals
實現,也可以比較自定義字段和屬性,而不是使用==
運算符。
感謝您的幫助,測試現在通過。我沒有任何選項將此標記爲答案,儘管 – proteus
@proteus應該是附近的upvote按鈕的標誌https://stackoverflow.com/help/accepted-answer – Iqon
找到它了,謝謝 – proteus