2015-05-15 5 views
0

Как утверждать вложенный список тоже, не «невнимая» его?CollectionAssert вложенного списка

 expected.Add(new Customer{ 
       Edition = "Cust", 
       Rarity = "R", 
       ID = 1001, 
       Name = "John Doe", 
       Types = new List<Type_>{ 
        new Type_{ 
         ID = 1, 
         Name = "abc" 
        } 
       }, 

Здесь утверждают:

CollectionAssert.AreEqual(expected, actual); 

Это, конечно, исключает вложенный список.

ответ

2

То, что работает для меня:

  • Генерация объекта хэш (например, MD5), который включает в себя содержимое списка, это довольно жесткий подход и редко полезен
  • Просто написать вторую Assert в тесте специально для этого внутреннего списка. Это более обычный подход (мой любимый)
  • Напишите новый тест, чтобы утверждать только внутренний список. Это более TDD-Purist подход

Редактировать, вот пример традиционного подхода:

var expected = new List<Type_>{ 
        new Type_{ 
         ID = 1, 
         Name = "abc" 
        }; 
CollectionAssert.AreEqual(expected, actual.Types); 
+0

Я хочу попробовать традиционный подход. Как это сделать? Должен ли я сначала создать экземпляр списка expected_type_, чтобы его утверждать? Я не знаю, как обращаться к внутреннему списку только в утверждении? –

+0

Посмотрите на редактирование – oleksii

+0

У меня это также было в виду, но мой проверенный метод возвращает только один пользовательский класс (например, Клиент). В этом классе находятся три других внутренних списка (Type_ и т. Д.). Я могу создать временные списки для этих внутренних списков в моем тестируемом методе, но я могу только вернуть один класс. –

Смежные вопросы