apache-camelТестирование интеграции существующих маршрутов с помощью Apache-Camel и Spring (и DBUnit)


Вступление

Цель этой вики - показать вам, как выполнять интеграционные тесты с помощью Apache Camel.

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

Проект, который я делал это, использует классическую Spring с конфигурацией xml и DBUnit, чтобы издеваться над тестовой базой данных. Надеюсь, это даст вам несколько результатов.

параметры

Параметр / Функция подробности
обмен Обмен используется внутри процессора верблюда для передачи объектов между частями вашего маршрута
CamelContext Контекст верблюда используется в тесте для ручного запуска и остановки контекста.
ProducerTemplate Позволяет отправлять сообщения на вашем маршруте, настраивая полный обмен вручную или отправляя фиктивные заголовки / тело
AdviceWith Помогает вам переопределить существующий маршрут с текущим контекстом
WeaveById Используется внутри совета с настройкой, сообщает части вашего маршрута, как вести себя (может также использовать weaveByToString )
MockEndpoint Точка макета - это точка, которую вы определяете для своего теста. В вашем weaveById вы можете указать свой маршрут на обычную обработку и перейти в mockEnpoint, а не следовать обычным маршрутам. Таким образом, вы можете проверить количество сообщений, статус обмена ...

замечания

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

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

Тестирование интеграции существующих маршрутов с помощью Apache-Camel и Spring (и DBUnit) Связанные примеры