MOQ Я метод как этот:Убедитесь, что расширение Linq методы называются с
public IEnumerable<string> GetCompaniesCities()
{
return CompanyRepository.All()
.OrderBy(c => c.City)
.Select(c => c.City.ToUpper())
.Distinct().ToList();
}
Как я могу проверить (с использованием MOQ), что OrderBy (c => c.City)
называется? И Select(c => c.City.ToUpper()
и Distinct()
?
Я получаю
Invalid проверить на невиртуальном (переопределение в VB) член:. Х => x.All() OrderBy (с => c.City)
Примечание: это тестовый модуль, а не интеграционный тест, так что я не собираюсь БД
Не проверяйте внутренние элементы, как это, но проверьте, возвращает ли метод то, что он должен, и находится ли он в правильном порядке. –
Проблема в том, что это единичный тест, а не интеграционный тест, поэтому я не собираюсь на db – polonskyg
Это не способ избежать теста интеграции. Вы должны издеваться над репозиторием и вводить в него свои данные в памяти (посмотрите на инъекции зависимостей и рамки, такие как единство и ninject). –