웹 서비스를 검사하기위한 테스트 코드가 있는데 상속 된 클래스 중 일부는 HttpService
(어느 것이 확실하지 않은 것)을 가져와 시험 클래스 내에서 actorRefFactory
참조를 정의해야합니다.스프레이 경로 테스트 : 왜 actorRefFactory : ActorSystem을 정의해야합니까?
더 좋은 방법이 있나요?
스칼라 2.11.4, ScalaTest 2.2.1, 1.3.2 스프레이,
class RestAPITest extends FlatSpec
with Matchers
with ScalatestRouteTest
with SprayJsonSupport
with MyRoute
{
// Without this, we get:
// <<
// Error:(48, 7) class RestAPITest needs to be abstract, since method actorRefFactory in trait HttpService of type => akka.actor.ActorRefFactory is not defined
// <<
//
def actorRefFactory: ActorSystem = system
...
감사합니다. 왜 내가 이해하지 못하는 것은 ScalatestRouteTest가 이것에 대한 기본값을 제공 할 수없는 이유이며, 일반적으로 그런 것들은 스칼라의 함축을 통해 이루어집니다 (맞습니까?) 왜 여기 없습니까? 추상적 인 멤버의 이름을 짓는 것은 비 스케일의 일종의 느낌입니다. – akauppi
불행히도, 나는 그 질문에 대한 좋은 대답이 없습니다. 어떤 종류의 대답을 얻으려면 메일 링리스트에 문의하는 것이 좋습니다. 내부 비즈니스를 위해 스프레이를 사용하는 또 다른 액터 시스템이있을 수 있습니다. 두 개의 ActorSystem을 가지므로 암묵적인 선언이 복잡해집니다. 저자가 일반적으로 자신의 ActorSystems로 테스트하기를 원한다고 결정한 경우도있을 수 있습니다. 코드를 파고 들지 않고서는 확실치 않습니다 ... – jxstanford
정확히. 계속할 것입니다. 감사 – akauppi