2016-11-18 32 views
0

我有以下消息流 ConnectionActor - (RawMessage) - > ParserActor - (ParsedMessage) - > ProcessingActor - (DataMessage) - > DataStoreActor。如何測試不向發送者發送任何東西的演員

我想測試一下,當ParserActor收到一些特定的RawMessage時,我的ProcessingActor發送正確的DataMessage。使用Akka.TestKit可以做到嗎?

回答

1

在繼續之前,如果您的數據流處理無法更輕鬆快捷,我建議您參考Akka.Streams來評估。

鑑於此,您可以簡單地表達流程中兩個參與者之間的鏈接,即IActorRef傳遞給參與者的構造函數,如public ParserActor(IActorRef processingActor)。通過這種方式,您可以將流程組件分開,並使用標準測試探針或演員來模擬它們之間的連接。

+0

感謝您的回答,我會看看Akka.Streams。 實際上,我使用DI,所以將actor放入構造函數並不那麼容易。我決定通過使用DataStoreActor引用發送Configure消息來爲ProcessingActor設置DataStoreActor參考。 – bonzaster

相關問題