Как выполнить модульный тест полнотекстового поиска в ASP.NET MVC - PullRequest
1 голос
/ 29 апреля 2009

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

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

IQueryable<HealthOrganization> SearchOrganizations(string phrase);

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

Ответы [ 2 ]

1 голос
/ 29 апреля 2009

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

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

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

0 голосов
/ 12 мая 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...