2016-06-10 8 views
2

Ich muss einen Schauspieler in Akka testen, der Elternteil von zwei Kindern ist. In meinem Integrationstest muss ich eines dieser beiden Kinder verspotten. Beide untergeordneten Elemente werden im Konstruktor erstellt. Wie kann ich das bekommen?Akka: Strategie, um eine Komponente in einem Integrationstest zu verspotten

MyParentActor { 
    val childOne = ChildOne.props(...) 
    val childTwo = ChildTwo.props(...) 
... 
} 
+1

Ich denke, dass alles, was Sie brauchen, ist hier beschrieben: http://doc.akka.io/docs/akka/current/scala/testing.html#Testing_parent-child_relationships – liosedhel

+0

Ich ging es ein paar Mal, aber nicht sicher, ob Ich vermisse etwas. Die einfachste Lösung sieht für mich darin aus, das Implementierungsconf dieses Schauspielers durch einen verspotteten zu ersetzen, aber es sieht so aus, als könnten Sie es nicht tun. – Randomize

Antwort

2

Wenn Sie nur einen Schauspieler Referenz erhalten müssen, ohne seine Eltern schaffen Sie TestActorRef

val actorRef = TestActorRef(new ChildOne(param1, param2)) 

sonst ein Elternteil Schauspieler erstellen und mit context.child(childName) Sie können ActorSelection Referenz erhalten zu childActor oder Sie können verwenden können, verwenden Außerdem können Sie eine Nachricht direkt an den Kind-Akteur senden, indem Sie einfach den logischen Pfad kennen.

+0

Ich bin mir nicht sicher, ob ich das richtig verstanden habe, aber wie kann ich einen Schauspieler dazu bringen, Ad-hoc-Werte auch dann zurückzugeben, wenn er abgefangen wurde? – Randomize

Verwandte Themen