C# 嵌套列表的CollectionAssert
如何断言嵌套列表,而不“取消”它C# 嵌套列表的CollectionAssert,c#,unit-testing,equality,C#,Unit Testing,Equality,如何断言嵌套列表,而不“取消”它 expected.Add(new Customer{ Edition = "Cust", Rarity = "R", ID = 1001, Name = "John Doe", Types = new List<Type_>{ new T
expected.Add(new Customer{
Edition = "Cust",
Rarity = "R",
ID = 1001,
Name = "John Doe",
Types = new List<Type_>{
new Type_{
ID = 1,
Name = "abc"
}
},
这当然排除了嵌套列表。一些对我有用的东西:
- 生成包含列表内容的对象哈希(如MD5),这是一种非常严格的方法,很少有用
- 只需在测试中专门为该内部列表编写第二个断言。这是比较传统的方法(我最喜欢)
- 编写一个新测试以仅断言内部列表。这是一种更纯粹的TDD方法
var expected = new List<Type_>{
new Type_{
ID = 1,
Name = "abc"
};
CollectionAssert.AreEqual(expected, actual.Types);
var预期值=新列表{
新型_{
ID=1,
Name=“abc”
};
CollectionAssert.AreEqual(预期类型、实际类型);
我想尝试传统的方法。如何做到最好?我必须先创建一个预期的\u type\u列表副本才能断言它吗?我不知道如何仅在断言中处理内部列表?我也考虑过这一点,但我的测试方法只返回一个自定义类(例如Customer)。在这个类中还有三个其他内部列表我可以在我的测试方法中为这些内部列表创建临时列表,但是我只能返回一个类。
var expected = new List<Type_>{
new Type_{
ID = 1,
Name = "abc"
};
CollectionAssert.AreEqual(expected, actual.Types);