我有一個非常簡單的單元測試,正在測試適當代的通用List<SelectListItem>
。MSTest單元測試與列表<>返回不起作用
[TestMethod()]
public void PopulateSelectListWithSeperateTextAndValueLists()
{
//Arrange
SetupDisplayAndValueLists();
bool allOption = false;
//Act
List<SelectListItem> result = ControllerHelpers.PopulateSelectList(valueList, displayList, allOption);
//Assert
Assert.AreEqual(expected, result);
}
斷言總是返回false,即使我已經檢查,證實這兩個對象具有相同的精確值。
當單元測試返回屬於泛型的結果時,是否有任何特殊考慮?
更新了新的考驗和他們的狀態
Assert.AreEqual(4, result.Count); //passes
Assert.AreEqual(result[0].Text, expected[0].Text, "0 element is not found");//passes
Assert.AreEqual(result[1].Text, expected[1].Text, "1 element is not found");//passes
Assert.AreEqual(result[2].Text, expected[2].Text, "2 element is not found");//passes
Assert.AreEqual(result[3].Text, expected[3].Text, "3 element is not found");//passes
Assert.AreEqual(result[0].Value, expected[0].Value, "0 element is not found");//passes
Assert.AreEqual(result[1].Value, expected[1].Value, "1 element is not found");//passes
Assert.AreEqual(result[2].Value, expected[2].Value, "2 element is not found");//passes
Assert.AreEqual(result[3].Value, expected[3].Value, "3 element is not found");//passes
Assert.IsTrue(result.Contains(expected[0]), "0 element is not found"); //doesn't pass
Assert.IsTrue(result.Contains(expected[1]), "1 element is not found"); //doesn't pass
Assert.IsTrue(result.Contains(expected[2]), "2 element is not found"); //doesn't pass
Assert.IsTrue(result.Contains(expected[3]), "3 element is not found"); //doesn't pass
Assert.AreEqual(expectedList, result); //doesn't pass
是的,這就是我接下來要做的。我只是想看看我能否保持簡單,但顯然不是:P謝謝! – morganpdx 2011-03-10 22:49:01
我試過。載的做法,但它仍然是不及格。我決定咬緊牙關,檢查每個元素的每個值,並且所有東西都通過那裏。啊。我用所有的測試更新了這個問題,並且指出了哪一次通過,哪些沒有通過。 – morganpdx 2011-03-10 23:08:29