WCF + TDD: добавление сервисных ссылок в ваши тестовые проекты: плохо? - PullRequest
1 голос
/ 12 февраля 2010

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

Ответы [ 4 ]

2 голосов
/ 12 февраля 2010

Да, это плохая практика - добавлять сервисные ссылки в проект модульного тестирования. Вы можете использовать сгенерированный интерфейс контракта на обслуживание для проверки реального поведения сервиса WCF в тесте.

1 голос
/ 16 февраля 2010

Наличие ссылки на услугу может быть плохим путем, вы можете рассмотреть возможность реализации шаблона шлюза, например, IMyFooServiceGateway в качестве дополнительного уровня абстракции. Таким образом, вы можете сделать приложение более слабосвязанным и получить некоторую дополнительную тестируемость (в тестовом проекте вы будете ссылаться на сегрегированную сборку, содержащую IMyFooServiceGateway, и либо создадите вручную макет, реализующий IMyFooServiceGateway, либо воспользуетесь фреймворком типа Rhino Mocks создать один для вас.

0 голосов
/ 21 августа 2013

Если проект, являющийся целью для тестов, имеет ссылку на сервис, вам не нужно добавлять дополнительную ссылку на сервис в тестовый проект.

Когда ссылка на службу добавляется в проект, обычно сгенерированный для нее код содержит общедоступный интерфейс службы. Таким образом, тестовому проекту требуется только ссылка на целевой проект для того, чтобы увидеть этот интерфейс, который, в свою очередь, может быть добавлен в выбранную вами библиотеку-макет или удален вручную.

Стоит отметить, однако, что сгенерированный интерфейс не обязательно соответствует типичному соглашению об именах для интерфейсов «IFoo», поэтому это не сразу очевидно.

0 голосов
/ 13 февраля 2010

Вместо использования ссылки на сервис вы можете смоделировать ChannelFactory, используя свой контракт на обслуживание.

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