JUnit4 верблюжий тест - PullRequest
       3

JUnit4 верблюжий тест

0 голосов
/ 17 января 2020

Я пишу тест для моего приложения с пружинной загрузкой с верблюдной точкой входа:

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) в орг.

...