[ 
https://issues.apache.org/jira/browse/CAMEL-15401?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claus Ibsen closed CAMEL-15401.
-------------------------------
    Resolution: Won't Fix

Closing as part of cleaning up old/outdated JIRA tickets.

> Improve website documentation on testing with SpringBoot & JUnit5
> -----------------------------------------------------------------
>
>                 Key: CAMEL-15401
>                 URL: https://issues.apache.org/jira/browse/CAMEL-15401
>             Project: Camel
>          Issue Type: Task
>          Components: camel-spring-boot, camel-test
>    Affects Versions: 3.4.2
>         Environment: Spring Boot 2.3.2, JUnit5 that comes with the former, 
> Java 11, Maven 3.6
>  
>            Reporter: Bert Koorengevel
>            Priority: Minor
>
> When searching online for strategies to test a fragment of a Camel route with 
> JUnit5 in the context of a Spring Boot application, the returned 
> documentation seems somewhat outdated (favouring xml instead of java config 
> for both Spring and Camel related aspects) and missing a major point.
> Some top google hits for "apache camel test spring boot" are:
>  * [https://camel.apache.org/manual/latest/testing.html] 
>  One (at least me) gets drawn to the "Spring Test With Java Config" example. 
> When rebuilding from that example in a SpringBoot app, it won't ever work 
> because the {{ProducerTemplate}} and {{MockEndpoint}} instances remain 
> {{null}}. 
>  I happened to have an old working example of a project built with Camel 
> v2.20 which had the annotation {{@ContextConfiguration(loader = 
> CamelSpringDelegatingTestContextLoader.class)}}. Adding that (and a 
> dependency on {{camel-test-spring}} on top of {{camel-test-spring-junit5}}) 
> made the injections work but caused an NPE at 
> {{org.apache.camel.test.spring.CamelAnnotationsHandler.handleDisableJmx(CamelAnnotationsHandler.java:90)}}
>  which gets fixed by adding a static method that sets a dummy test class in 
> {{CamelSpringTestHelper}}.
>  After asking for assistance on gitter it was suggested to try to annotate 
> the test class with {{@CamelSpring*Boot*Test}} instead of 
> {{@CamelSpringTest}} as the example showed. As always with annotations: that 
> "_magically_" solved all issues. There was no way I could have known it 
> existed.
>  * [https://camel.apache.org/manual/latest/spring-testing.html]
>  Using CamelSpringTestSupport and rolling your own implementation of an 
> AbstractApplicationContext does not sound very attractive.
>  The list of examples goes further with "Plain Spring tests" but only 
> supported by JUnit4. It is uncertain whether this has any chance to work with 
> JUnit5.
>  * [https://camel.apache.org/components/latest/others/test-spring.html] 
>  As already stated on the page: old and needs updating. Won't comment 
> further. This looks like the original example I built my Camel v2.20 project 
> with, using the  {{CamelSpringDelegatingTestContextLoader}}
>  * 
> [https://camel.apache.org/components/latest/others/test-spring-junit5.html] 
>  It first suggests to extend CamelSpringTestSupport, but writing only my test 
> config in xml does not sound appealing.
>  Next comes an example again using {{@CamelSpringTest}} which has identical 
> issues as brought up in my first bullet.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to