Я пишу тест для моего приложения с пружинной загрузкой с верблюдной точкой входа:
from("direct:CreateUser")
.doTry()
.to(observabilityConfig.getCreateUserRouteTimerName(Action.START))
.wireTap("direct:tracing")
.bean("integration-rest-service","createUser(${body}, ${exchangeProperty.OpenTracing.activeSpan})")
.to(observabilityConfig.getCreateUserRouteTimerName(Action.STOP))
.endDoTry()
.doCatch(Exception.class)
.to("direct:exception");
В моем тесте я хочу перехватить конечную точку "direct: exception"
@RunWith(CamelSpringBootRunner.class)
@SpringBootTest
@DirtiesContext
@MockEndpoints
public class RoutesTest {
@Autowired
ObjectMapper om;
@Produce(uri = "direct:CreateUser")
private ProducerTemplate createUserEntrypoint;
@EndpointInject(uri = "mock:direct:exception")
private MockEndpoint result;
@Test
public void routesTest() throws URISyntaxException, CamelExecutionException, JsonProcessingException {
Request request = new Request();
request.setUsername("username");
request.setContract("contract");
request.setEmail("email");
request.setOfferName("offerName");
createUserEntrypoint.sendBody(om.writeValueAsString(request));
result.expectedMessageCount(0);
}
}
В тестовом прогоне я ожидаю, что обмен будет перехвачен и отправлен в введенную конечную точку, но он всегда идет к исходному маршруту.
РЕДАКТИРОВАТЬ:
с:
@EndpointInject(uri = "direct:exception")
получено:
org. apache .camel.spring.GenericBeansException: Ошибка постобработки bean: it.poste.o2 c .sa.integration.ftm.RoutesTest.ORIGINAL; вложенное исключение: java .lang.IllegalArgumentException: недопустимый тип: org. apache .camel.component.mock.MockEndpoint, который нельзя вставить через @ EndpointInject / @. Производить для: direct: // исключение в org. apache (. CamelBeanPostProcessor * * тысяча двадцать семь: 160) .camel.spring.CamelBeanPostProcessor.postProcessBeforeInitialization в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization (AbstractAutowireCapableBeanFactory java:. 419) при org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.initializeBean (AbstractAutowireCapableBeanFactory * * тысяча двадцать-девять:. 1737) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean (AbstractAutowireCapableBeanFactory java:. 410) при org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies (DependencyInjectionTestExecutionListener. java: 120) по адресу org.springframework.test.context.support.DependencyInjectionTestExecutio nListener.prepareTestInstance (DependencyInjectionTestExecutionListener java:. 83) на org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener.prepareTestInstance (. SpringBootDependencyInjectionTestExecutionListener java: 44) при org.springframework.test.context.TestContextManager.prepareTestInstance (TestContextManager. java: 246) по адресу org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest (SpringJUnit4ClassRunner. java: 227) по адресу org.springframework.test.context.junit4.SprallJunit : 289) в org.junit.internal.runners.model.ReflectiveCallable.run (ReflectiveCallable. java: 12) в org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock (SpringJRunner 4): SpringJRunner4. org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild (SpringJUnit4ClassRunner. java: 246) в org.springframework.test.context.junit4.SpringJUnit4ClassRunh ingJUnit4ClassRunner. java: 97) в org.junit.runners.ParentRunner $ 3.run (ParentRunner. java: 290) в org.junit.runners.ParentRunner $ 1.schedule (ParentRunner. java: 71) в org .junit.runners.ParentRunner.runChildren (ParentRunner. java: 288) в org.junit.runners.ParentRunner.access $ 000 (ParentRunner. java: 58) в org.junit.runners.ParentRunner $ 2.evaluate ( . java: 268) в org.junit.internal.runners.statements.RunBefores.evaluate (RunBefores. java: 26) в org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate (RunBe 1047 *: 61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate (RunAfterTestClassCallbacks. java: 70) в org.junit.runners.ParentRunner.run (ParentRunner: 36 *) 10) org.springframework.test.context. eclipse.j dt.internal.junit.runner.TestExecution.run (TestExecution. java: 41) в org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests (RemoteTestRunner. java: 542) в org.eclse. jdt.internal.junit.runner.RemoteTestRunner.runTests (RemoteTestRunner java:. 770) в org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run (RemoteTestRunner. java: 464) в org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main (RemoteTestRunner. 210) * 1056 Вызывается: java .lang.IllegalArgumentException: недопустимый тип: org. apache .camel.component.mock.MockEndpoint, который не может быть введен через @ EndpointInject / @. Производить для: direct: // исключение в org. apache С .DefaultCamelBeanPostProcessor.injectField (DefaultCamelBeanPostProcessor. java: 197) в org. apache .camel.impl.DefaultCamelBeanPostProcessor $ 1.doWith (DefaultCamelBeanPostProcessor. java .67.perh. doWithFields (ReflectionHelper. java: 74) в орг. apache .camel.impl.DefaultCamelBeanPostProcessor.injectFields (DefaultCamelBeanPostProcessor. java: 170) в орг. * 1 071 * .camel.impl.DefaultCamelBeanPostProcessor.postProcessBeforeInitialization (DefaultCamelBeanPostProcessor. java: 83) в орг.