Тестирование (большой) коллекции, полученной из БД - PullRequest
0 голосов
/ 06 мая 2010

В настоящее время я выполняю интеграционное тестирование базы данных, и у меня есть следующий оператор SQL:

var date = DateTime.Parse("01-01-2010 20:30:00");
var result = datacontext.Repository<IObject>().Where(r => r.DateTime > date).First();
Assert.IsFalse(result.Finished);

Мне нужно проверить, если для результатов, извлеченных из оператора, где указанная дата меньше даты объекта, для параметра Закончено установлено значение Ложь. Я не знаю, сколько результатов я получу, и в настоящее время я получаю первый объект в списке и проверяю, установлен ли для этого объекта значение Finished в false. Я знаю, что тестирование только первого элемента списка не является допустимым тестированием, поскольку для решения этой проблемы я мог бы пройтись по списку и проверить все элементы на «Готово», но использование логики в тесте противоречит концепции написания «хорошо» тесты.

Итак, мой вопрос:
У кого-нибудь есть хорошее решение, как правильно проверить результаты этого списка?

1 Ответ

0 голосов
/ 06 мая 2010

Можно пойти другим путем, проверить, есть ли у вас какие-либо результаты в этом диапазоне дат, когда является готовым.

Если они есть, то ваш тест не пройден.

Я не могу протестировать какой-либо причудливый код, поэтому я дам вам простой способ:

int noOfResultsFinished = datacontext.Repository<IObject>()
      .Where(r => r.DateTime > date && r.Finished).Count();

if (noOfResultsFinished > 0)
{
     // fail test
}
...