我正在为LINQ存储库编写单元测试。我有以下测试:
[TestMethod]
public void Find_Method_MustReturn_Customer_Orders_ItemsWithinOrder()
{
Customer c = _rep.Find(6).SingleOrDefault();
Assert.IsTrue(c.Orders.Count > 0);
}
我可以看到客户是否已下订单。另外,我想使用LINQ检查Orders是否有任何项目。
我怎样才能做到这一点?
谢谢
答案 0 :(得分:2)
我认为这样的事情应该有效:
var items =
From o In c.Orders
From i In o.Items
Select i;
Assert.IsTrue(items.Any());
这相当于:
Assert.IsTrue(c.SelectMany(x => x.Items).Any());
答案 1 :(得分:2)
这将断言客户有订单,并且每个订单都有商品。
[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());
}
答案 2 :(得分:0)
foreach
会满足吗?
foreach(var order in c.Orders)
{
Assert.IsTrue(order.Items.Count > 0);
}