2014-05-19 3 views
2

테스트 스위트에 문제가 있습니다. 내가 뭘 할지라도 나는 항상 같은 오류 메시지를받습니다. Request was not handled. 여기 Scalatest 및 SprayIO가 실패합니다.

class EventsServiceSpec extends FlatSpec with ScalatestRouteTest with EventsService with Matchers { 
    def actorRefFactory = system 

    behavior of "Events service" 

    it should "list all events" in { 
    Get("events") ~> eventsRoute ~> check { 
     status should equal (StatusCodes.OK) 
    } 
    } 
} 

가 해당 서비스 내 노선은 다음과 같습니다 :

내 테스트 스위트입니다

trait EventsService extends HttpService { 
    val eventsRoute = 
    path("events") { 
     get { 
     complete(StatusCodes.OK) 
     } ~ 
     post { 
     entity(as[Event]) { event => 
      complete(StatusCodes.OK) 
     } 
     } 
    } 
} 

나는 아무 생각이 무슨 일없는 나는 또 다른 테스트 프레임 워크를 사용하지 않으있다 . 스프레이 테스트의 예제는 대부분 Spec2로 작성 되었기 때문에. 어쩌면 내가 뭔가를 놓친 것 같아.

+1

"events"의해야 할 수 있다는 것입니다 : "'/ 이벤트 "? 'path' /'pathPrefix' 지시어는 경로 세그먼트를 선행 슬래시와 일치시킵니다. 그 이유는 모든 들어오는 요청의 URI가 절대적인 URI이므로 항상 슬래시로 시작하기 때문입니다. – jrudolph

답변

1

Specs2를 사용하고 있으며 다른 특성으로 테스트를 수행하고 있습니다. 수업에 사용하여 내 테스트는 다음과 같이 :

class EventsServiceSpecTest extends SpecificationWithJUnit with Specs2RouteTest with EventsService { 

    "Events Service" should { 

    "list all events" in {  
     Get("events") ~> eventsRoute ~> check { 
     status === StatusCodes.OK 
     } 
    } 
    } 
} 

내가 생각할 수있는 유일한 다른 것은 당신의 경로 대신이 URI에 대한 테스트를 시도 "/events" 대신

+0

네, 테스트 케이스 내부에서만''/ events ''이어야합니다. 라우팅 경로는 그대로 유지해야합니다. – bkowalikpl