CollectionAssert的嵌套List

时间:2015-05-15 12:13:14

标签: c# unit-testing equality

如何断言嵌套列表,而不“取消”它?

        expected.Add(new Customer{
                Edition = "Cust",
                Rarity = "R",
                ID = 1001,
                Name = "John Doe",
                Types = new List<Type_>{
                    new Type_{
                        ID = 1,
                        Name = "abc"
                    }
                },

这里断言:

CollectionAssert.AreEqual(expected, actual);

这肯定会排除嵌套列表。

1 个答案:

答案 0 :(得分:2)

对我有用的东西:

  • 生成包含列表内容的对象哈希(例如MD5),这是一种非常严格的方法,很少有用
  • 在测试中专门针对该内部列表编写第二个断言。这是更传统的方法(我最喜欢的)
  • 编写新测试以仅断言内部列表。这是更TDD纯粹的方法

编辑,这是传统方法的一个例子:

var expected = new List<Type_>{
                    new Type_{
                        ID = 1,
                        Name = "abc"
                    };
CollectionAssert.AreEqual(expected, actual.Types);