Как выполнить модульное тестирование производственных маршрутов в Apache Camel?

Допустим, у меня есть маршруты, созданные в отдельном классе RouteBuilder. Это выглядит так:

  • получить сообщение из очереди JMS
  • выполнить некоторые преобразования, проверку и т. Д.
  • в зависимости от результатов проверки направить в конкретную очередь JMS и сохранить что-то в БД

Я бы хотел провести модульное тестирование этого маршрута без брокера JMS и без БД. Я знаю, что могу издеваться над своими реализациями процессора, но этого недостаточно. Я не хочу менять этот маршрут (предположим, у меня есть этот класс в файле jar). Насколько я знаю из Camel in Action (раздел 6.2.6), чтобы иметь возможность использовать макеты конечных точек и другие вещи, мне нужно изменить определения конечных точек маршрута (в примере из книги это изменение «mina: tcp: /» / miranda "высмеивать: miranda" и т. д.). Если я получил свой RouteBuilder как отдельный класс, должен ли я каким-то образом «копировать» определение маршрута и изменять его вручную? Разве это не неправильное тестирование?

Я новичок в Camel, и для меня было бы действительно здорово иметь возможность иметь изолированное модульное тестирование при разработке маршрутов. Просто чтобы иметь возможность что-то изменить, провести небольшой тест, посмотреть результат и т. Д.

20
задан veilsoen 14 April 2011 в 13:55
поделиться