Тестирование from-Endpoints с CamelBlueprintTestSupport не выполняется с некоторыми компонентами
Я бы хотел протестировать Camel Routes, реализованный с помощью Blueprint-XML. При попытке протестировать маршрут с помощью простого "прямого" от конечной точки все работает нормально.
Но при изменении конечной точки "from" на компонент netty или jetty тест завершается неудачно со следующим исключением:
java.lang.RuntimeException: отказался от ожидания BlueprintContainer из пакета MyRouteTest
Маршрут, который у меня есть, выглядит так:
<route id="test">
<from uri="jetty:http://test:8080/sample/test?matchOnUriPrefix=true" />
<log id="_log1" loggingLevel="INFO" message="Test " />
</route>
Мой тестовый класс, расширяющий CamelBlueprintTestSupport, выглядит так:
// imports...
public class MyRouteTest extends CamelBlueprintTestSupport {
@Override
protected String getBlueprintDescriptor() {
return "/OSGI-INF/blueprint/blueprint2.xml";
}
@Test
public void testRoute() throws Exception {
context.getRouteDefinition("test").adviceWith(context, new AdviceWithRouteBuilder() {
@Override
public void configure() throws Exception {
replaceFromWith("direct:myMock");
}
});
assert (true);
}
}
Изменение маршрута к
<route id="test">
<from
uri="direct:halloTest" />
<log id="_log1" loggingLevel="INFO" message="Test " />
</route>
путем замены части from с пристани на прямую работает нормально (например, тест проходит без ошибок и, конечно, заканчивается положительным результатом из-за проверки assert(true))
Кто-нибудь может мне помочь?
Результат mvn test:
ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 31.843 s <<< FAILURE! - myPackage.MyRouteTest
[ERROR] testRoute(myPackage.MyRouteTest) Time elapsed: 31.544 s <<< ERROR!
java.lang.RuntimeException: Gave up waiting for BlueprintContainer from bundle "MyRouteTest"
[INFO]
[INFO] Results:
[INFO]
[ERROR] Errors:
[ERROR] MyRouteTest>CamelBlueprintTestSupport.setUp:241->CamelBlueprintTestSupport.createBundleContext:175 ▒ Runtime
[INFO]
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0
1 ответ
Задача состоит в том, чтобы добавить в тестовый класс следующий код:
Изменение маршрута к
@Override
public boolean isUseAdviceWith() {
return true;
}