2016-11-18 1 views
1

http://camel.apache.org/mock.html을 사용하여 낙타 경로 용 테스트 사례를 만들려고합니다. 나는 경로에 프로세서를 확인해야합니다. 그러나 간단한 테스트가 나를 위해 작동하지 않습니다.낙타 테스트 - java.lang.IllegalArgumentException : defaultEndpoint를 지정해야합니다.

public class CamelRouteTest extends CamelTestSupport { 

    @Override 
    public String isMockEndpointsAndSkip() { 
    // override this method and return the pattern for which endpoints to mock, 
    // and skip sending to the original endpoint. 
    return "mock:result"; 
    } 

    @Test 
    public void verifyMessageCount() throws Exception { 
    template.sendBody("Test"); 
    getMockEndpoint("mock:result").expectedMessageCount(1); 
    assertMockEndpointsSatisfied(); 
    } 

    @Override 
    protected RouteBuilder createRouteBuilder() throws Exception { 
    return new RouteBuilder() { 
     @Override 
     public void configure() throws Exception { 
      from("direct:start").to("mock:result"); 
     } 
    }; 
    } 
} 

스택 트레이스 : 기본 엔드 포인트에 Test을 보낼 수

java.lang.IllegalArgumentException: defaultEndpoint must be specified 
    at org.apache.camel.util.ObjectHelper.notNull(ObjectHelper.java:308) 
    at org.apache.camel.impl.DefaultProducerTemplate.getMandatoryDefaultEndpoint(DefaultProducerTemplate.java:506) 
    at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:370) 

답변

3

template.sendBody("Test") 시도. 귀하의 코드 에서처럼 이것은 구성되지 않았으므로 실패합니다.

당신 수 :

  • template.sendBody("direct:start", "Test"); 
    
  • 사용하는 환경에서 엔드 포인트를 얻을 수 및 기본 엔드 포인트

    Endpoint endpoint = context.getEndpoint("direct:start"); 
    template.setDefaultEndpoint(endpoint); 
    template.sendBody("Test"); 
    
로 설정되는 엔드 포인트 지정
관련 문제