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