Как правильно провести модульное тестирование метода, который возвращает последовательность сложных объектов?
Я использую поиск веток. У меня есть хранилище, которое возвращает объект Branch
, который имеет различную информацию, такую как
- Название филиала
- Адрес
- Местоположение
- Продукты на складе
У меня есть хранилище, которое я подделал, чтобы всегда возвращать известную последовательность Branch
объектов, и мне нужно проверить логику в моей службе BranchFinder
.
Метод Find
принимает местоположение (широта / долгота) и спецификацию продукта в виде Flags
enum.
public IEnumerable<Branch> Find(Location location, Products products);
Зная данные, с которыми будет работать поиск, я могу смело указать местоположение и спецификацию продукта и знать, чего ожидать, но как я могу утверждать, что последовательность правильная.
например.
var loc = new Location(53.79424, -1.546112);
var results = service.Find(loc, Products.Milk | Products.Bananas);
Для этого запроса я знаю, что определенное подмножество данных должно быть возвращено в определенном порядке, а также, что расстояние от текущего местоположения до ветви должно увеличиваться при повторении набора результатов.
Как правильно / лучше всего проверить эти правила и ситуации?