55.3. 사용법
테스트에서 camel-mock 기능을 사용하려면 MockEndpoint 인스턴스에 액세스해야 합니다.
CDI 주입은 인스턴스에 액세스하는 데 사용할 수 있습니다( Quarkus 문서참조). @Inject 주석을 사용하여 camelContext를 테스트에 삽입할 수 있습니다. 그런 다음 Camel 컨텍스트를 사용하여 mock 엔드포인트를 가져올 수 있습니다. 다음 예제를 참조하십시오.
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");
}
}