单元测试嵌套列表

时间:2011-04-15 08:53:45

标签: c# .net unit-testing

我正在为LINQ存储库编写单元测试。我有以下测试:

[TestMethod]
public void Find_Method_MustReturn_Customer_Orders_ItemsWithinOrder()
{
      Customer c = _rep.Find(6).SingleOrDefault();
      Assert.IsTrue(c.Orders.Count > 0);                        
}

我可以看到客户是否已下订单。另外,我想使用LINQ检查Orders是否有任何项目。

我怎样才能做到这一点?

谢谢

3 个答案:

答案 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);
}