[
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)