如何模拟上下文(ActorContext)?
问题描述:
我正在使用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]
但它没有奏效。
答
目前尚不清楚你想要做什么,或者遇到什么错误。我是猜测您正在使用ActorContext
在getActorRef
内部获得ActorRef
。如果是这样,你是否尝试过使用Mockito来创建一个模拟ActorContext
,当你在测试中构造它时将它传递到Demo
,然后将所调用的ActorContext
方法截掉,以便它返回你想要的值(例如,测试探头,还是一些这样的东西)?
我希望能够工作,假设这就是你想要做的。
是否必须嘲笑?为什么不使用akka测试包来提供'ActorContext'?类似于https://*.com/questions/36945414/how-do-i-supply-an-implicit-value-for-an-akka-stream-materializer-when-sending-a/36985091#36985091 –