Если вы действительно хотите проверить свою реализацию репозитория, то я предлагаю вам выполнить свои тесты на известном, консервированном хранилище данных (т.е. у вас будет набор футболок в таблице футболок, и вы будете точно знать, какие рубашки красного цвета), чтобы вы могли утверждать, что хранилище возвращает именно то, что вы ожидаете.
Однако такие тесты стоят дорого, и сами по себе не являются юнит-тестами. Чтобы повысить производительность и довести время выполнения до приемлемых значений, вы можете захотеть работать с базой данных в памяти, такой как SQLite . Это бесплатно, кстати.
Таким образом, вам не придется зацикливаться или перебирать тесты. Вы просто позвоните в свой репозиторий и подтвердите результаты:
public void GetShirts_WithFilter_ShouldReturnFilteredResults()
{
var rep = new MyRepository(mySQLiteConnectionString);
var redShirts = rep.GetShirts(shirt => shirt.Color == Color.Red); //For example
Assert.AreEqual(3, redShirts); // I know there should be 3 red shirts in the table
}
В качестве альтернативы вы можете подготовить коллекцию (например, IEnumerable of Shirt) со списком точных рубашек, которые вы ожидаете получить, и заявить, что списки имеют одинаковые элементы.
Надеюсь, это поможет.