2013-06-21 2 views
1

아파치 카멜 사용하기 2.9.1어떻게 아파치 캐시 타이머 경로를 단위 테스트 할 수 있습니까?

어떻게하면 다음과 같은 단위 테스트를 할 수 있습니까?

public class MyRoute extends RouteBuilder { 
    @Override 
    public void configure() throws Exception { 

     from("timer.something?delay=0?repeatCount=1") 
      // do some stuff 
      .to("{{some.endpoint}}") 
      .end() 

     from("timer.somethingelse?delay=3000&period=1000") 
      // do some stuff 
      .to("{{some.other.endpoint}}") 
      .end 
    } 
} 

답변

3

정확히 여기에 단위 테스트를 원하십니까? 타이머 구성 요소를 단위 테스트하는 것은 단서가 없기 때문에 (트리거되는 경우 유닛 테스트를 의미하며 해당 속성이 있어야하는 것처럼 작동하는 경우) : Camel 팀에서 이미 수행했습니다.

여기에 단위 테스트에 대한 논리적 인 의미는 "끝내주는 부분"입니다. 끝점을 조롱하면됩니다. 귀하의 첫 번째 경로는 자동으로 해고되고, 두 번째 것은 초기 지연과 함께 해고됩니다. 당신은 적어도 무엇이든 주장하기 위해 그 이상을 기다려야 할 것입니다. 경우 이러한 종류의에서 나는 보통

from("timer:somethingelse?{{2nd.timer.properties}}") 

같은 속성 파일에서 엔드 포인트 특성을 읽고 그는 그래서 하나가 아니라 시작시 트리거

2nd.timer.properties=delay=3000&period=1000 //in prod 
2nd.timer.properties=delay=0 //during tests 

로 설정할 수 있습니다.

게르 겔리, 희망이 도움이

1

또한, 당신은 메시지를 보낼 수있는 단위 테스트와 조언을 사용하고 테스트하는 동안 경로에 엔드 포인트 URI에서 교체, 예를 들면 직접 엔드 포인트를 사용할 수 있습니다 경로를 실행하려면 직접 엔드 포인트에 연결하십시오.

테스트에 대한 낙타 문서에서 자세한 내용을 참조하십시오 그리고 당신이 주장 수있는 위치 "블랙 박스 테스트"를 사용할 수있는 NotifyBuilder도 있습니다 X 메시지가 처리되었습니다.

관련 문제