Unittesting вызываемые оркестровки

Работая с BizTalk, мне нравится использовать вызываемые оркестровки (без конвейеров) как сервис для других оркестровок, предоставляя большую гибкость в архитектуре. Но юнит-тестирование их довольно коварно. Теперь я использую отдельное приложение с оркестровкой оболочки (просто вызывая оркестровку для тестирования), которую развертываю в BizTalk перед тестированием модуля.

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

Заранее спасибо.

1 ответ

Трудно ответить на открытый вопрос с НЕТ, но я бы ответил, что это практически невозможно.

Оркестровки действительно тесно связаны с механизмом оркестровки BizTalk. Если вы хотите выполнить юнит-тестирование оркестровки, вам нужно будет смоделировать этот механизм оркестровки. Это нелегкая работа. Там есть много особенностей, о которых вам нужно подумать, таких как обезвоживание, сериализация, области действия, как на самом деле работает обмен сообщениями с вашей оркестровкой и т. Д. И т. Д.

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

Я бы попытался ограничить количество оркестровых работ, которые вы делаете. Используйте оркестровку только тогда, когда нет лучшей (или, по крайней мере, более проверяемой) альтернативы.

Если вы можете проверить свою оркестровку быстро и без особых усилий, просто развернув ее, отбросив сообщение и просмотрев результаты, то вы уже проводите больше испытаний, чем целый набор разработчиков BizTalk. Если вы упростите этот процесс и автоматизируете его там, где сможете (разверните, удалите файл, проверьте ожидаемый результат), вы по крайней мере упростите обнаружение регрессий.

Цель состоит в том, чтобы сделать тестирование таким простым, дешевым и надежным, чтобы его было проще тестировать, чем не тестировать. Таким образом вы не позволите менеджерам говорить skip the tests, they take too long, Вы хотите, чтобы они спрашивали: can you test it first?

Другие вопросы по тегам