Модульное тестирование вложенных списков - PullRequest
0 голосов
/ 15 апреля 2011

Я пишу юнит-тесты для репозитория LINQ. У меня есть следующий тест:

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

Я вижу, сделал ли клиент какие-либо заказы Кроме того, я хотел бы использовать LINQ, чтобы проверить, есть ли у заказов какие-либо элементы.

Как мне этого добиться?

Спасибо

Ответы [ 3 ]

2 голосов
/ 15 апреля 2011

Это будет утверждать, что у клиента есть заказы и что у каждого заказа есть пункты.

[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 голосов
/ 15 апреля 2011

Я думаю, что-то вроде этого должно работать:

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());
0 голосов
/ 15 апреля 2011

Достаточно ли foreach?

foreach(var order in c.Orders)
{
    Assert.IsTrue(order.Items.Count > 0);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...