Если вы не возражаете против того, чтобы ваш тестовый проект зависел от Entity Framework, то вот как я бы подошел к этому.
- В тестовом проекте создайте модель EF из базы данных, используя толькотаблиц, которые вы собираетесь тестировать.
- Добавьте ссылку на службу к службе WCF из тестового проекта.
- Создайте тест в тестовом проекте.В этом тесте используйте контекст EF для создания ваших начальных тестовых данных.
- Позвоните в сервис из теста.
- Проверьте базу данных на наличие соответствующих данных, позвоните в свой Assert (s).
- Очистите базу данных.
Вам также следует рассмотреть возможность использования облегченной базы данных на основе файлов / в памяти, такой как SQLite, для этой задачи.Одним из простых способов достижения этого было бы использование EF для генерации модели из вашей БД, а затем использование инструмента «Обновление базы данных из модели» для генерации SQL, который создаст соответствующие таблицы и ограничения в вашем экземпляре SQLite.Это означает отсутствие риска слияния данных в вашей основной / dev DB и, возможно, более быстрые тесты.
Также в отношении шагов 3 и 6, некоторые люди рекомендуют использовать встроенные средства настройки / очистки / разрываМСТест.Обычно я не начинаю их использовать, пока не вижу, что они помогают уменьшить дублирование кода, потому что, по моему мнению, они делают тесты менее четкими и читабельными, но это личное дело.