我从MS Test开始尝试运行以下测试。我看到下面的部分给了我一个失败,这是非常令人惊讶的:
[TestMethod]
public void EachRetailerPassedToBuilderIsReturnedInVmList()
{
List<string> mockRetailers = new List<string> { "Asda", "Tesco" };
Assert.AreEqual(new List<string>{ "Asda", "Tesco"}, mockRetailers);
}
我做错了什么?
结果消息:Assert.AreEqual失败。 预期:
答案 0 :(得分:1)
问题是List<T>.Equals
不提供元素的元素检查。它只会比较参考文献。快速解决方案是迭代数据并在每个元素上Assert.Equals
。请记住,事先要检查列表大小是否相等。
也可以使用CollectionAssert.AreEqual
来获得适当的结果。