Как эффективно проводить модульное тестирование DAL, использующего ADO.NET и SQL Server, с помощью NUnit?

Итак, у вас есть DAL на C #, использующий шаблон репозитория, и у вас есть интерфейс для каждого репозитория. Он поддерживается вызовами ADO.NET, MS SQL Server и хранимых процедур.

Это отлично подходит для заглушки/моделирования репозитория, где он используется в другом месте при выполнении модульных тестов, и мне это нравится!

Тем не менее, я хотел бы добавить некоторые модульные тесты для самого DAL. Предпочтительно использовать Rhino Mocks с NUnit. Однако я готов перейти на MoQ, если можно будет убедительно доказать, что он может сделать что-то, чего не может Rhino в отношении этого вопроса.

Я бы предпочел, чтобы он не разговаривал с какой-либо БД во время модульных тестов, чтобы они были более «чистыми», но при этом эффективно тестировали сам DAL. Однако, если вы не можете действительно эффективно выполнить модульное тестирование самого DAL без его общения с БД, какие могут быть альтернативы, которые могут быть в заменах памяти или переносимых заменах на основе файлов, которые совместимы с SQL Server и теми же вызовами SqlConnection и SqlCommand.

Открыт для рефакторинга DAL, если это необходимо, чтобы упростить внедрение, если в то же время это не слишком усложняет дизайн. Уже используется Microsoft Unity для внедрения зависимостей с шаблоном репозитория.

5
задан Rodney S. Foley 31 July 2012 в 22:42
поделиться