找不到参数系统的隐式值:akka.actor.ActorSystem

could not find implicit value for parameter system: akka.actor.ActorSystem

我正在使用 TestActorRef 为 Akka Actor 创建单元测试用例。

def actorRefFactory = context
        implicit def executionContext = actorRefFactory.dispatcher
        implicit val OutputActor = actorRefFactory.actorOf(Props[OutputActor], "OutputActor")

        val actorRef = TestActorRef[OutputActor]
        val actor = actorRef.underlyingActor

在创建 actorRef 时出现以下错误:

- could not find implicit value for parameter system: akka.actor.ActorSystem
    - not enough arguments for method apply: (implicit t: 
     scala.reflect.ClassTag[org.musigma.muhpc.OutputActor], implicit system: 
     akka.actor.ActorSystem)akka.testkit.TestActorRef[org.musigma.muhpc.OutputActor] in object 
     TestActorRef. Unspecified value parameter system.

我对此很陌生。请帮忙。

演员的所有实例,TestActorRef 或实际的真实实例,需要一个 ActorSystem 驻留。实例化和启动演员的方法(再次,测试或其他)需要一个 implicit ActorSystem 在范围内,以便创建该 actor 的底层代码知道将它放在哪里。

因此,考虑到这一点,您只需要确保在测试代码的开头添加一行这样的代码:

implicit val system = ActorSystem()