34.11. XML DSL을 사용하여 기존 끝점 처리
위에 표시된 대로 unit testing에 camel-test 구성 요소를 사용하지 않는 경우 경로에 XML 파일을 사용할 때 다른 접근 방식을 사용할 수 있습니다.
솔루션은 단위 테스트에서 사용하는 새 XML 파일을 만든 다음 테스트할 경로가 있는 XML 파일을 포함하는 것입니다.
camel-route.xml 파일에 경로가 있다고 가정합니다.
camel-route.xml
<!-- this camel route is in the camel-route.xml file -->
<camelContext xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="direct:start"/>
<to uri="direct:foo"/>
<to uri="log:foo"/>
<to uri="mock:result"/>
</route>
<route>
<from uri="direct:foo"/>
<transform>
<constant>Bye World</constant>
</transform>
</route>
</camelContext>
그런 다음 새 XML 파일을 다음과 같이 생성합니다. 여기에는 camel-route.xml 파일을 포함하고 org.apache.camel.impl.InterceptSendSendToMockEndpointStrategy 클래스를 사용하여 Spring space를 정의하는 다음과 같이 새 XML 파일을 생성합니다.
test-camel-route.xml
<!-- the Camel route is defined in another XML file -->
<import resource="camel-route.xml"/>
<!-- bean which enables mocking all endpoints -->
<bean id="mockAllEndpoints" class="org.apache.camel.component.mock.InterceptSendToMockEndpointStrategy"/>
그러면 단위 테스트에서 camel-route.xml 대신 새 XML 파일(test-camel-route.xml)을 로드합니다.
모든 Log 엔드포인트만 모방하려면 console의 생성자에 패턴을 정의할 수 있습니다.
<bean id="mockAllEndpoints" class="org.apache.camel.impl.InterceptSendToMockEndpointStrategy">
<constructor-arg index="0" value="log*"/>
</bean>