Как я могу издеваться над вызовами базы данных, чтобы моя логика приложения была протестирована без базы данных?Mocking Database call Asp.net MVC application
ответ
procedure GetData (output arrayOfData)
arrayOfData.record1.field1 = "dataA"
arrayOfData.record1.field2 = "dataAB"
arrayOfData.record2.field1 = "dataB"
arrayOfData.record2.field2 = "dataBB"
return arrayOfData)
end procedure
Затем вызовите GetData и используйте этот фрагмент данных, который вам нужен для вашей логики. Позже измените GetData, чтобы действительно получить данные из базы данных. Прямо сейчас, просто подделайте его и назначьте ему разумные данные вручную.
Используйте repository pattern и издевайтесь над этим в своих тестах, используя насмешливую структуру, такую как MoQ.
Редактировать: check out this article by Stephen Walther on MoQ.
Паттерн репозитория с жестко запрограммированной реализацией или использование файла XML (мои предпочтения).
Надежда эта статья Стивена Walther помогает ..
В этой статье читателя через процесс использования издевается для модульного тестирования. Это подробная статья и довольно хорошая.
В нем также есть пример шаблона репозитория, выделенного некоторыми членами сообщества.
Я согласен об использовании шаблона хранилища (и, следовательно, будет повышающим голос). Но, насколько мне нравится Moq, я не издеваюсь над своими репозиториями с Moq. Я думаю, что жестко закодированная, издевающаяся реализация, использующая тот же интерфейс, что и «реальный» репозиторий, более гибкая. Но вы правы в том, что хранилище является ключевым. – 2008-12-11 14:02:31