JVM since1.0.0 Native since1.0.0

Test routes and mediation rules using mocks.

What’s inside

Please refer to the above link for usage and configuration details.

Maven coordinates


Check the User guide for more information about writing Camel Quarkus applications.


To use camel-mock capabilities in tests it is required to get access to MockEndpoint instances.

CDI injection could be used for accessing instances (see Quarkus documentation). You can inject camelContext into test using @Inject annotation. Camel context can be then used for obtaining mock endpoints. See the following example:

import javax.inject.Inject;

import org.apache.camel.CamelContext;
import org.apache.camel.ProducerTemplate;
import org.apache.camel.component.mock.MockEndpoint;
import org.junit.jupiter.api.Test;

import io.quarkus.test.junit.QuarkusTest;

public class MockJvmTest {

    CamelContext camelContext;

    ProducerTemplate producerTemplate;

    public void test() throws InterruptedException {

        producerTemplate.sendBody("direct:start", "Hello World");

        MockEndpoint mockEndpoint = camelContext.getEndpoint("mock:result", MockEndpoint.class);
        mockEndpoint.expectedBodiesReceived("Hello World");


Route used for the example test:

import javax.enterprise.context.ApplicationScoped;

import org.apache.camel.builder.RouteBuilder;

public class MockRoute extends RouteBuilder {

    public void configure() throws Exception {

Camel Quarkus limitations

Injection of CDI beans (described in Usage) does not work in native mode.

In the native mode the test and the application under test are running in two different processes and it is not possible to share a mock bean between them (see Quarkus documentation).