【问题标题】:How to assert two collection that contains same data如何断言包含相同数据的两个集合
【发布时间】:2015-11-02 10:47:35
【问题描述】:

我想用我预期的List 断言结果List。我的预期列表如下代码所示

List<GroupOfStuff> expectedResult = new List<GroupOfStuff>();
List<Stuff> stuffList = new List<Stuff>();
Stuff stuff = new Stuff
{
    DeliveryDays = 3
};
stuffList.Add(stuff);
GroupOfStuff groupByCountry = new GroupOfStuff
{
    Country = "Australia",
    StuffDetails = stuffList // List<Stuff> type
};
expectedResult.Add(groupByCountry);

我有实际的List&lt;GroupOfStuff&gt; actual = obj.Result ()

我通过了this post。但我有另一个 GroupOfStuff 类包含另一个 List 成员。所以,shell 我去为GroupOfStuff 类的每个成员单独断言或者建议是什么,我如何断言它们。

【问题讨论】:

    标签: c# .net assertion


    【解决方案1】:

    我想这是为了单元测试?然后就可以在microsoft.visualstudio.testtools.unittesting.collectionassert(https://msdn.microsoft.com/en-us/library/microsoft.visualstudio.testtools.unittesting.collectionassert.aspx)的命名空间中使用这个CollectionAssert.AreEqual了

    自 .net 4.0 起您可以在 Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 中找到它

    【讨论】:

      【解决方案2】:

      我认为您可以为此目的使用扩展方法Enumerable.SequenceEqual&lt;TSource&gt;()。小例子如何使用它:

              class Pet
              {
                  public string Name { get; set; }
                  public int Age { get; set; }
              }
      
              public static void SequenceEqualEx1()
              {
                  Pet pet1 = new Pet { Name = "Turbo", Age = 2 };
                  Pet pet2 = new Pet { Name = "Peanut", Age = 8 };
      
                  // Create two lists of pets.
                  List<Pet> pets1 = new List<Pet> { pet1, pet2 };
                  List<Pet> pets2 = new List<Pet> { pet1, pet2 };
      
                  bool equal = pets1.SequenceEqual(pets2);
      
                  Console.WriteLine(
                      "The lists {0} equal.",
                      equal ? "are" : "are not");
              }
      

      【讨论】:

        猜你喜欢
        • 2021-07-05
        • 2013-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多