Как выполнить модульное тестирование sql-хранимых шагов на верблюжьем маршруте
Я недавно присоединился к проекту, в котором множество заданий autosys заменены верблюжьими маршрутами. большинство потоков обработки следуют той же схеме:
- Прочитать файл из определенной папки
- Применить некоторую десериализацию некоторого вида в структуру Java
- Вызов хранимой процедуры или другой на основе некоторых значений, включенных в структуру Java
- Отправить результаты обработки стороннему потребителю
Самым простым способом реализации вызова хранимой процедуры было использование sql-stored
составная часть. Скажем так, у меня есть этот маршрут:
from("file://d:/temp/in/?include=myFile*.csv")
.process("myHeaderSetter")
.choice()
.when(header("myheader")).to("sql-stored:proc_1()?dataSource=#dataSource")
.otherwise().to("sql-stored:proc_2()?dataSource=#dataSource")
.end()
.to("reportGenerator")
.to("file://d:temp/out/?fileName=report.txt");
Каждый процессор очень хорошо тестируется модулем, но мы хотим убедиться, что логика маршрутов идет так, как мы ожидаем. Хранимым процедурам может потребоваться некоторое время для выполнения, и запуск реального маршрута не является опциональной частью модульного тестирования, поэтому мне нужен способ проверить, что хранимые процедуры вызываются без фактического их запуска.
Итак, что было бы хорошим подходом для модульного тестирования маршрута, как описано выше.
Заранее благодарю за ваш вклад
1 ответ
При тестировании обратите внимание на advice-with ( http://camel.apache.org/advicewith.html), так как вы можете использовать его для замены частей ваших маршрутов другими битами, такими как маршрутизация в mocks вместо sql