2016-02-04 14 views
5

Tworzę przypadek testowy dla aktora Akka, używając TestActorRef.nie można znaleźć niejawnej wartości dla systemu parametrów: akka.actor.ActorSystem

def actorRefFactory = context 
     implicit def executionContext = actorRefFactory.dispatcher 
     implicit val OutputActor = actorRefFactory.actorOf(Props[OutputActor], "OutputActor") 

     val actorRef = TestActorRef[OutputActor] 
     val actor = actorRef.underlyingActor 

otrzymuję następujący błąd w tworzeniu actorRef:

- could not find implicit value for parameter system: akka.actor.ActorSystem 
    - not enough arguments for method apply: (implicit t: 
    scala.reflect.ClassTag[org.musigma.muhpc.OutputActor], implicit system: 
    akka.actor.ActorSystem)akka.testkit.TestActorRef[org.musigma.muhpc.OutputActor] in object 
    TestActorRef. Unspecified value parameter system. 

Jestem bardzo nowy na tym. Uprzejma pomoc.

Odpowiedz

11

Wszystkie przypadki aktorów TestActorRef lub rzeczywistych rzeczywistych przypadkach potrzebne jest ActorSystem przebywania środka. Metody Instantiate i rozpocząć podmiotów (ponownie, kontroli lub inaczej) wymagają implicitActorSystem się w zakresie, tak, że kod wyjściowy tworzenia ten aktor wie, gdzie to umieścić.

więc biorąc to pod uwagę, po prostu trzeba się upewnić, że dodasz linię kodu jak to na początku kodu testu:

implicit val system = ActorSystem() 
+0

Pracował jak czar. Dzięki! –

+2

Tak, nie zostało to określone w http://doc.akka.io/docs/akka/2.4/scala/testing.html. Dziękuję za wskazanie. – Philippe

Powiązane problemy