[英]Unit testing nested lists
I'm writing unit tests for LINQ repository. 我正在为LINQ存储库编写单元测试。 I have the following test:
我有以下测试:
[TestMethod]
public void Find_Method_MustReturn_Customer_Orders_ItemsWithinOrder()
{
Customer c = _rep.Find(6).SingleOrDefault();
Assert.IsTrue(c.Orders.Count > 0);
}
I can see whether customer has made any orders. 我可以查看客户是否下了订单。 Additionally, I'd like to use LINQ to check whether Orders have any items.
此外,我想使用LINQ来检查订单是否有任何物品。
How can I achieve this? 我该如何实现?
Thank you 谢谢
I think something like this should work: 我认为这样的事情应该起作用:
var items =
From o In c.Orders
From i In o.Items
Select i;
Assert.IsTrue(items.Any());
This is the equivalent of: 这等效于:
Assert.IsTrue(c.SelectMany(x => x.Items).Any());
This will assert that customer has orders and that each order has items. 这将断言客户有订单,并且每个订单都有项目。
[TestMethod]
public void Find_Method_MustReturn_Customer_Orders_ItemsWithinOrder()
{
Customer c = _rep.Find(6).SingleOrDefault();
Assert.IsTrue(c.Orders.Any());
Assert.IsTrue(c.Orders.Any(x => x.Items.Any());
}
Would a foreach
suffice? 一个
foreach
就足够了吗?
foreach(var order in c.Orders)
{
Assert.IsTrue(order.Items.Count > 0);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.