嵌套列表的 CollectionAssert

CollectionAssert of an nested List

如何在没有 'unnesting' 的情况下也断言嵌套列表?

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

那肯定排除了嵌套列表。

对我有用的东西:

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

编辑,这里是一个常规方法的例子:

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