2017-12-27 531 views
0

我正在使用TestKit來測試Akka Actor。我有一個Demo類,它有方法getActorRef,它將輸入作爲字符串並返回一個ActorRef。如何模擬上下文(ActorContext)?

class Demo @Inject()(a: A. b: B, context: ActorContext) { 
    def getActorRef(id: String): ActorRef 
} 

我在創建Demo.Now對象時嘲笑了A,B,我正面臨着如何模擬上下文的問題。

我做了什麼嘲笑它? val context = mock [ActorContext]

但它沒有奏效。

+0

是否必須嘲笑?爲什麼不使用akka測試包來提供'ActorContext'?類似於https://stackoverflow.com/questions/36945414/how-do-i-supply-an-implicit-value-for-an-akka-stream-materializer-when-sending-a/36985091#36985091 –

回答

0

目前尚不清楚你想要做什麼,或者遇到什麼錯誤。我是猜測您正在使用ActorContextgetActorRef內部獲得ActorRef。如果是這樣,你是否嘗試過使用Mockito來創建一個模擬ActorContext,當你在測試中構造它時將它傳遞到Demo,然後將所調用的ActorContext方法截掉,以便它返回你想要的值(例如,測試探頭,還是一些這樣的東西)?

我希望能夠工作,假設這就是你想要做的。