This projects supplies a small library making testing of Apache Camel components easier.
Minimal tested version:
- Apache Camel 2.20.1
- Springboot 1.5.8-RELEASE
Put the following dependency to your Maven POM file:
<dependency>
<groupId>io.toolisticon.camel</groupId>
<artifactId>camel-spring-boot-test-rule</artifactId>
<version>0.0.3</version>
<scope>test</scope>
</dependency>
There is a lot written about Camel Spring Testing, but all approaches are based on inheritance (SpringTestSupport
)
or using a special runner (CamelSpringBootRunner
). There are good reasons for doing so, but if you are not able to do so,
for example using a different runner , you may use the supplied JUnit test rule for this:
...
import org.springframework.test.context.junit4.rules.CamelSpringClassRule;
import org.springframework.test.context.junit4.rules.SpringMethodRule;
@SpringBootTest
public class SimpleRuleTest {
@ClassRule
public static final CamelSpringClassRule springClassRule = new CamelSpringClassRule();
@Rule
public final SpringMethodRule springMethodRule = new SpringMethodRule();
@Autowired
private CamelContext camelContext;
@Test
@DirtiesContext
public void testMe() throws Exception {
// do something with camelContext here
}
}
There is a standard annotation in Camel-Spring to exclude routes org.apache.camel.test.spring.ExcludeRoutes
. This is not
working using a standard Springboot test. If you use this library, the support is restored. Just annotate
the org.apache.camel.test.spring.ExcludeRoutes
to your test class containing the CamelSpringClassRule
and list the excluded route classes.