Как выполнить полнотекстовый поиск модульного теста в ASP.NET MVC

StackOverflow https://stackoverflow.com/questions/801627

Вопрос

Я только начал использовать ASP.NET MVC и TDD.Я читал, что при модульном тестировании следует сосредоточиться на тестировании своего кода, а не других систем, таких как БД.Однако что происходит, когда основные функции находятся в БД?

Я использовал серию MVC Storefront в качестве начального руководства по настройке своих проектов и шаблонов.Поскольку полнотекстовый поиск необходим, я настроил это как функцию в своем репозитории.

IQueryable<HealthOrganization> SearchOrganizations(string phrase);

Теперь для логики этого поиска требуется табличная функция с полным текстом и некоторые другие функции в базе данных.Логику этих функций невозможно получить в поддельном репозитории абсолютно корректно.Как вы порекомендуете лучшую стратегию модульного тестирования и TDD при поиске?

Это было полезно?

Решение

Это не модульный тест, это интеграционный тест.Так что вряд ли вы сможете реализовать это как TDD.

Я предполагаю, что твой код ничего не делает, кроме вызова базы данных.Так что вам не придется много тестировать.Если вы можете имитировать вызов базы данных на самом низком уровне, вы можете проверить, произойдет ли вызов.Если это становится очень сложным, лучше не писать для этого модульный тест.Только поддерживать его будет сложно.

Для написания интеграционного теста вам нужна реальная база данных.

Другие советы

Вы можете создать тестовую базу данных, содержащую набор известных элементов, а затем проверить, что код поиска возвращает ожидаемые результаты.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top