gpt4 book ai didi

c# - MSTest:CollectionAssert.AreEquivalent 失败。预期的集合包含 1 次出现

转载 作者:IT王子 更新时间:2023-10-29 04:29:22 24 4
gpt4 key购买 nike

问题:

谁能告诉我为什么我的单元测试失败并显示此错误消息?

CollectionAssert.AreEquivalent failed. The expected collection contains 1 occurrence(s) of . The actual collection contains 0 occurrence(s).

目标:

我想检查两个列表是否相同。如果它们都包含具有相同属性值的相同元素,则它们是相同的。顺序无关紧要。

代码示例:

这是产生错误的代码。 list1list2 是相同的,即彼此的复制粘贴。

[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());

附言

相关 Stack Overflow 问题:

我已经看到了这两个问题,但答案没有帮助。

最佳答案

你完全正确。除非你提供类似 IEqualityComparer<MyPerson> 的东西或实现 MyPerson.Equals() , 两个 MyPerson对象将与 object.Equals 进行比较,就像任何其他对象一样。由于对象不同,Assert 会失败。

关于c# - MSTest:CollectionAssert.AreEquivalent 失败。预期的集合包含 1 次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5194966/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com