簡體   English   中英

如何聲明兩個包含相同數據的集合

[英]How to assert two collection that contains same data

我想斷言最終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<GroupOfStuff> actual = obj.Result ()

我瀏覽了這篇文章 但是我得到了另一個GroupOfStuff類,其中包含另一個List成員。 因此,shell我對GroupOfStuff類的每個成員分別進行斷言,或者提出什么建議,即shell如何斷言它們。

我想這是用於單元測試嗎? 然后,您可以在microsoft.visualstudio.testtools.unittesting.collectionassert( https://msdn.microsoft.com/zh-cn/library/microsoft.visualstudio.testtools.unittesting.collectionassert.aspx )的命名空間中使用此CollectionAssert.AreEqual

從.net 4.0開始可以在Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll中找到的

我認為您可以為此使用擴展方法Enumerable.SequenceEqual<TSource>() 小示例如何使用它:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM