我想用预期的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 ()
我经历了this post。但我得到另一个GroupOfStuff
类包含另一个List
成员。所以,shell我会单独断言GroupOfStuff
类的每个成员或者建议是什么,我如何断言它们。
答案 0 :(得分:0)
我想这是单元测试?然后,您可以在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
答案 1 :(得分:0)
我认为你可以使用扩展方法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");
}