나는 내 단위 테스트를 실행하는 데 CamelSpringJUnit4ClassRunner
을 사용하고 같은로그와 아파치 낙타에 모의 엔드 포인트 설정 : *
<route>
<from uri="someUri" />
<to uri="someProcessor" />
<to uri="log:SOME_LOG?level=INFO" />
</route>
으로 로그 URI로 끝나는 여러 경로를 가지고있다.
내 로그 끝점을 MockEndpoint 개체로 조롱 할 수 있기를 원합니다. 나는
end = MockEndpoint.resolve(camelContext, "log:SOME_LOG?level=INFO");
와 함께
@MockEndpoints("log:*")
를 사용하려고했지만 그는 ClassCastException가 MockEndpoint에 InterceptSendToEndpoint 캐스팅 수 없습니다 생성합니다.
와도
@EndpointInject(uri="log:SOME_LOG?level=INFO")
MockEndpoint end;
을 시도했지만 그 또한 IllegalArgumentException을 생성합니다. "모의"와
@EndpointInject(uri="mock:log:SOME_LOG?level=INFO)
을 사용하고 내가 싶습니다 그러나
<route>
<from uri="someUri" />
<to uri="someProcessor" />
<to uri="mock:log:SOME_LOG?level=INFO" />
</route>
와 XML로 내 경로를 정의
Invalid type: org.apache.camel.component.mock.MockEndpoint which cannot be
injected via @EndpointInject/@Produce for: Endpoint[log:SOME_LOG?level=INFO]
내가 찾은 해결 방법은 내 로그 URI를 앞에 붙이는 것입니다 내 log : uris를 조롱하고 camel.xml에서 내 경로 정의를 수정하지 않아도 작동하도록하십시오.
내가 무엇을 누락 되었습니까?
당신이 '자신의 설정이 있어야 할 건가요 : 아래 코드를 사용하여 모의 엔드 포인트를 얻을 수 있어야합니다', 주석이 @MockEnpoints는 ("로그'남아있다 : * ")'하지만 그는 end = MockEndpoint.resolve (camelContext,"mock : log : SOME_LOG? level = INFO ")'로 초기화해야합니까? –
Snekse
그래, 네 말이 맞아. –