Тестирование с использованием Apache Camel и Spring-Boot действительно просто.
Просто сделайте следующее (приведенный ниже пример является абстрактным примером, чтобы дать вам подсказку, как вы можете это сделать):
Напишите тестовый класс
Используйте Spring-Boot Annotations для настройки тестового класса.
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE)
@RunWith(SpringRunner.class)
public class MyRouteTest {
@EndpointInject(uri = "{{sourceEndpoint}}")
private ProducerTemplate sourceEndpoint;
....
public void test() {
// send your body to the endpoint. See other provided methods too.
sourceEndpoint.sendBody([your input]);
}
}
В src/test/application.properties
: настройте конечные точки Camel, такие как источник и цель:
sourceEndpoint=direct:myTestSource
Подсказки:
Хорошо не привязывать начальную и конечную точки на маршруте напрямую при использовании весенней загрузки, а использовать application.properties
.Таким образом, проще смоделировать конечные точки для модульных тестов, потому что вы можете перейти на direct
-компонент без изменения исходного кода.
Это означает, что вместо: from("quartz2://tsTimer?cron=0/20+*+8-18+?+*+MON,TUE,WED,THU,FRI+*")
вы должны написать: from("{{sourceEndpoint}}")
и настройте sourceEndpoint
в своем application.properties
: sourceEndpoint=quartz2://tsTimer?cron=0/20+*+8-18+?+*+MON,TUE,WED,THU,FRI+*
Таким образом, вы также можете использовать свой маршрут для различных ситуаций.
Документация
Хорошую документацию о том, как тестировать с помощью spring-boot, можно найти здесь: https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-testing.html
Для Apache Camel: http://camel.apache.org/testing.html