2016-11-18 3 views
0

Ich habe folgenden Nachrichtenfluss ConnectionActor - (RawMessage) -> ParserActor - (ParsedMessage) -> ProcessingActor - (DataMessage) -> DataStoreActor.So testen Sie Schauspieler, die nichts an Absender senden

Ich möchte testen, dass mein ProcessingActor ordnungsgemäße DataMessage sendet, wenn ParserActor eine bestimmte RawMessage erhalten. Ist es möglich mit AkkA.TestKit zu arbeiten?

Antwort

1

Bevor Sie weiter gehen, würde ich Ihnen empfehlen, einen Blick auf Akka.Streams zu werfen, um zu bewerten, ob Ihre Stream-Verarbeitung damit nicht einfacher und schneller gemacht werden könnte.

Vor diesem Hintergrund könnten Sie einfach eine Verknüpfung zwischen zwei Akteuren in Ihrem Fluss als dIActorRef an Schauspieler Konstruktor wie public ParserActor(IActorRef processingActor) übergeben. Auf diese Weise können Sie Komponenten Ihres Flusses getrennt halten und die Verbindung zwischen ihnen unter Verwendung von Standardtestsonden oder Aktoren vortäuschen.

+0

Danke für die Antwort, ich werde einen Blick auf die Akka.Streams werfen. Eigentlich verwende ich DI, so ist es nicht so einfach, Schauspieler ref Konstruktor zu setzen. Ich entschied mich, DataStoreActor ref für ProcessingActor zu setzen, indem ich Configure message with DataStoreActor reference. – bonzaster

Verwandte Themen