Hi You can help by logging a JIRA ticket http://camel.apache.org/support.html
For sure camel-spring-boot is getting a lot more attraction with the popularity of spring-boot and hence we and Camel users will continue to make it better. On Mon, Nov 16, 2015 at 12:32 PM, Minh Tran <minh.t...@winning.com.au> wrote: > Hi > > I think the workaround has some disadvantages. > - It makes the routes more difficult to read. It took me a while to decipher > what {{target:jms:queue}} actually meant. You might get away with it if > you’re only going to mock a few endpoints but I generally mock every endpoint > in my routes. I would need a placeholder for every single endpoint which is > way too much work. > - The endpoint isn’t actually running whereas @MockEndpoints actually > executes the endpoint and if I wanted to skip it, I simply switch to > @MockEndpointAndSkip > > Without these features, it makes it very difficult to unit test and IMO is > one of the biggest reasons why Camel rocks. It allows you to test your > production routes with zero modification. I have to say this is a deal > breaker and I will probably go back to plain Spring which is a shame since > Spring Boot does have other lovely features. > > I fully appreciate you are putting your own time into this and am very > grateful so don’t get me wrong. I hope this is constructive criticism, I > apologise in advance if it isn’t. I’ll also look at how I can contribute. > Thanks again. > >> On 16 Nov 2015, at 9:16 PM, Henryk Konsek <hekon...@gmail.com> wrote: >> >> Hi, >> >> Yes, @MockEndpoints annotation is not supported at the moment. This is a >> feature that has to be coded and added to our Spring Boot module. >> >> As a workaround you can define your mocked endpoint like: >> >> from("from...").to("{{target:jms:queue}}"); >> >> And then set the target=direct:queue for the tests using the Spring Boot >> @IntegrationTest("target=direct:queue") annotation. >> >> Also you are more than welcome to contribute @MockEndpoints support. It is >> on my TODO list, but not with high priority. >> >> Cheers! >> >> pon., 16.11.2015 o 09:32 użytkownik Joakim Bjørnstad <joak...@gmail.com> >> napisał: >> >>> 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 >>> >> -- >> Henryk Konsek >> http://about.me/hekonsek > -- Claus Ibsen ----------------- http://davsclaus.com @davsclaus Camel in Action 2: https://www.manning.com/ibsen2