Как написать модульные тесты для службы WCF, которая вызывает другой веб-сервис? - PullRequest
0 голосов
/ 26 декабря 2011

У меня есть клиентское приложение, которое вызывает мою службу WCF (если быть точным, службу маркеров безопасности, то есть STS), которая аутентифицирует пользователя. У нас много приложений, объединенных вместе, и эта конкретная служба WCF (STS), в свою очередь, вызывает другую веб-службу какого-либо стороннего приложения, потому что для продолжения моей STS требуются некоторые детали от сторонней веб-службы.

Теперь я хочу написать модульные тесты для моей STS, а также для функции входа в клиентское приложение.

Мои вопросы:

  1. Должен ли я написать модульный тест только для методов STS с некоторыми жестко закодированными значениями в качестве входных данных от стороннего веб-сервиса? Если нет, модульные тесты не пройдут, если что-то пойдет не так с сторонним веб-сервисом.

  2. Вместо того, чтобы вызывать мой STS из модульных тестов клиентского приложения, могу ли я жестко кодировать значения ввода (например, имя пользователя и пароль)? Это правильный подход?

  3. Нужно ли на самом деле вызывать веб-сервис из модульных тестов, написанных для клиентского приложения? Если да, то почему?

1 Ответ

2 голосов
/ 26 декабря 2011

Модульное тестирование не пересекает границы процесса, это делают интеграционные тесты.Ваша цель - протестировать только поведение вашего STS.Для этого вам нужно внедрить фиктивную реализацию стороннего сервиса.Я предлагаю вам посмотреть MOQ.вам также может понадобиться DI-контейнер (я использую ms Unity, но есть из чего выбирать), из которого ваша служба STS будет разрешать ссылку на стороннюю службу.в контейнере DI

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