2016-09-09 2 views
0

ScalaTest와 FunSpec 테스트 스타일을 사용하여 카멜 코드를 단위 테스트하고 싶습니다.ScalaTest를 사용하여 Camel을 테스트하는 방법

이렇게하려면 FunSpec과 CamelTestSupport 둘 다에서 확장해야합니다. 그러나이 두 클래스는 클래스이며 Scala에서이 작업을 수행하려면 적어도 하나의 특성이 필요합니다. 예를 들어,이 작동하지 않습니다

class MySpec extends FunSpec with CamelTestSupport {} 

참고 :이 FunSpec에 많은 온라인 참조가이 특징이다 제안 나타납니다,하지만 scalatest_2.11-3.0.0-M15의 클래스입니다.

어떻게 ScalaTest FunSpec을 사용하여 Camel을 테스트 할 수 있습니까? 다음과 같이 JUnit을 보일지 사용하여 작성

같은 시험 :

public class DataLakeEventListenerRouteIT extends CamelTestSupport { 
    @Autowired 
    private MyRouteBuilder myRouteBuilder; 
    private MockEndpoint myEndpointMock; 

    @Override 
    public boolean isUseAdviceWith() { 
     return true; 
    } 

    @Override 
    protected JndiRegistry createRegistry() throws Exception { 
     JndiRegistry registry = super.createRegistry(); 
     //do some required bindings here 
     return registry; 
    } 

    @Before 
    public void startup() throws Exception {  
     AdviceWithRouteBuilder mock = new AdviceWithRouteBuilder() { 
      public void configure() throws Exception { 
       mockEndpointsAndSkip(myRouteBuilder.MY_ROUTE_URI); 
      } 
     }; 

     context.addRoutes(myRouteBuilder); 
     context.getRouteDefinition(myRouteBuilder.MY_ROUTE_ID) 
       .adviceWith(context, mock); 

     myEndpointMock = getMockEndpoint(
       "mock:" + myRouteBuilder.MY_ROUTE_URI); 
    } 

    @Test 
    public void timerRouteShouldSendMessage() throws Exception { 
     // Arrange 
     context.start(); 

     myEndpointMock.expectedMessageCount(1); 
     myEndpointMock.assertIsSatisfied(); 

     context.stop(); 
    } 
} 

답변

0

글쎄, 그것은 간단로 밝혀졌습니다. ScalaTest는 FunSpecLike라는 FunSpec에 해당하는 특성을 제공합니다. 다음과 같이 테스트를 선언하십시오 :

class StoreSVSFileRouteSpec extends CamelTestSupport with FunSpecLike {} 
관련 문제