N-модульное тестирование WCF с обратными вызовами

Я модульное тестирование службы WCF.

Поток идет так.

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

Как я могу модульно протестировать такой сервис.

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

Спасибо,


person Sandeep    schedule 24.08.2010    source источник
comment
Вы тестируете обратные вызовы, вызывая их и проверяя результаты. Более конкретно. Вы пытаетесь избежать прохождения всей цепочки звонков?   -  person Dmitry Ornatsky    schedule 24.08.2010
comment
Нет.. Я не пытаюсь избежать прохождения всей цепочки звонков.   -  person Sandeep    schedule 24.08.2010


Ответы (1)


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

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

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

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

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

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

person David Hoerster    schedule 24.08.2010