Hello,

Doesn't seem like there is any support for @MockEndpoints and
@MockEndpointsAndSkip with Spring Boot and Camel at the moment.

The reason for this is that the CamelSpringTestContextLoader is never
loaded. Typically you use:

@RunWith(CamelSpringJUnit4ClassRunner.class)
@BootstrapWith(CamelTestContextBootstrapper.class)

Together with @SpringApplicationConfiguration, it goes directly to the
SpringApplicationContextLoader and thus Camel test annotations are not
loaded.

Please see https://issues.apache.org/jira/browse/CAMEL-7963

On Mon, Nov 16, 2015 at 2:40 AM, Minh Tran <minh.t...@winning.com.au> wrote:
> Hi
>
> I’m trying to write unit tests in camel 2.16.0 and spring boot.
>
> My route looks like
>
> from(“direct:start”).to(“direct:end”)
>
> My unit test looks like
>
> @RunWith(SpringJUnit4ClassRunner.class)
> @SpringApplicationConfiguration(classes = Config.class)
> @MockEndpoints
> public class MyUnitTest {
>
>   @Produce(uri=“direct:start”)
>   private ProducerTemplate producer;
>
>   @EndpointInject(uri=“mock:direct:end”)
>   private MockEndpoint end;
>
>         @Test
>         public void testMock() throws InterruptedException {
>                 end.expectedBodiesReceived("blah");
>                 producerTemplate.sendBody("blah");
>                 end.assertIsSatisfied();
>         }
>
> }
>
> It looks like the direct:end bit is never mocked so the assertion fails. It’s 
> like @MockEndpoints is completely ignored.
>
> Is this the correct way to mock existing components when using spring boot? 
> Thanks.



-- 
Kind regards
Joakim Bjørnstad

Reply via email to