2.40.3. 使用方法
テストで camel-mock 機能を使用するには、MockEndpoint インスタンスへのアクセスを取得する必要があります。
CDI の注入は、インスタンスへのアクセスに使用できます (Quarkus ドキュメント を参照してください)。@Inject
アノテーションを使用して camelContext をテストに注入できます。その後、Camel コンテキストを使用してモックエンドポイントを取得できます。以下の例を参照してください。
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; @QuarkusTest public class MockJvmTest { @Inject CamelContext camelContext; @Inject ProducerTemplate producerTemplate; @Test public void test() throws InterruptedException { producerTemplate.sendBody("direct:start", "Hello World"); MockEndpoint mockEndpoint = camelContext.getEndpoint("mock:result", MockEndpoint.class); mockEndpoint.expectedBodiesReceived("Hello World"); mockEndpoint.assertIsSatisfied(); } }
サンプルテストに使用するルート:
import javax.enterprise.context.ApplicationScoped; import org.apache.camel.builder.RouteBuilder; @ApplicationScoped public class MockRoute extends RouteBuilder { @Override public void configure() throws Exception { from("direct:start").to("mock:result"); } }