N-Unit тестирование WCF с обратными вызовами - PullRequest
2 голосов
/ 24 августа 2010

Я тестирую сервис WCF.

Процесс выглядит следующим образом.

  1. Команда вставки приложения (клиента) в БД через Webservice1.Это делается с помощью дуплексного шаблона. (С обратными вызовами).
  2. WebService1 вставляет команду в БД, и этот Webservice1 вызывает другой веб-сервис2 о поступлении новой команды. (Дуплексный шаблон).
  3. Webservice2 затемчитает команду через Webservice3, выполняет, вставляет результаты и вызывает метод обратного вызова на Webservice1, сообщая, что команда выполнена.
  4. Webservice1 затем вызывает метод обратного вызова в приложении и сообщает прибытие результата.

Как я могу протестировать такой сервис?

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

Спасибо,

1 Ответ

2 голосов
/ 24 августа 2010

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

Я думаю, что вы описываете, скорее, интеграционный тест .Вы должны выполнять этот тест только после того, как вы выполнили отдельные модульные тесты для определенных сервисов, которые вы описали выше.По сути:

Целью интеграционного тестирования является проверка требований к функциональности, производительности и надежности, предъявляемых к основным элементам проектирования.

Для модульного тестирования ваших дуплексных служб здесьхорошо документированное сообщение в блоге, описывающее, как это сделать (с большим количеством кода): http://blogs.msdn.com/b/ploeh/archive/2008/06/28/unit-testing-duplex-wcf-services.aspx

Таким образом, вы бы создали модульные тесты, которые проверяют взаимодействие с элементами № 1 и № 4 из вашего списка (app ->ws1 и ws1 -> app), затем взаимодействие с элементами # 2 и # 3 (ws1 -> ws2 и ws2 -> ws1), затем модульное тестирование взаимодействия # 3 (ws2 -> ws3).Этот последний, который вы можете просто издеваться.Без гораздо более подробной информации, вот как я начну тестировать это.

Надеюсь, это поможет.

...