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

Reply via email to