Вы должны тестировать сервисы индивидуально для модульного тестирования, высмеивая ответы от сервисов, которые они будут вызывать.Таким образом, вы можете протестировать отдельные сервисы как небольшие единицы работы и убедиться, что они работают как положено.Вы также можете сосредоточиться на функциональности каждого сервиса, не беспокоясь о том, как сервисы реально взаимодействуют друг с другом.
Я думаю, что вы описываете, скорее, интеграционный тест .Вы должны выполнять этот тест только после того, как вы выполнили отдельные модульные тесты для определенных сервисов, которые вы описали выше.По сути:
Целью интеграционного тестирования является проверка требований к функциональности, производительности и надежности, предъявляемых к основным элементам проектирования.
Для модульного тестирования ваших дуплексных служб здесьхорошо документированное сообщение в блоге, описывающее, как это сделать (с большим количеством кода): 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).Этот последний, который вы можете просто издеваться.Без гораздо более подробной информации, вот как я начну тестировать это.
Надеюсь, это поможет.