【发布时间】:2011-07-08 20:58:54
【问题描述】:
问题:
谁能告诉我为什么我的单元测试失败并显示此错误消息?
CollectionAssert.AreEquivalent 失败。预期的集合包含 1 的发生。实际上 集合包含 0 次出现。
目标:
我想检查两个列表是否相同。如果两者都包含具有相同属性值的相同元素,则它们是相同的。顺序无关紧要。
代码示例:
这是产生错误的代码。 list1 和 list2 是相同的,即相互复制粘贴。
[TestMethod]
public void TestListOfT()
{
var list1 = new List<MyPerson>()
{
new MyPerson()
{
Name = "A",
Age = 20
},
new MyPerson()
{
Name = "B",
Age = 30
}
};
var list2 = new List<MyPerson>()
{
new MyPerson()
{
Name = "A",
Age = 20
},
new MyPerson()
{
Name = "B",
Age = 30
}
};
CollectionAssert.AreEquivalent(list1.ToList(), list2.ToList());
}
public class MyPerson
{
public string Name { get; set; }
public int Age { get; set; }
}
我也试过这条线 (source)
CollectionAssert.AreEquivalent(list1.ToList(), list2.ToList());
还有这条线 (source)
CollectionAssert.AreEquivalent(list1.ToArray(), list2.ToArray());
附言
相关堆栈溢出问题:
这两个问题我都看过,但答案都没有帮助。
【问题讨论】:
标签: c# .net unit-testing mstest