如何在Scala中为具有构造函数参数的Actor创建TestActorRef?

Dav*_*vid 21 testing scala actor akka

在阿卡测试文档提供以下方法来创建TestActorRef:

import akka.testkit.TestActorRef

val actorRef = TestActorRef[MyActor]

如何扩展它以测试带有构造函数参数的现有actor?当我尝试按原样运行时,在我的actor类中替换,我收到以下错误:

"错误而创建的演员akka.actor.ActorInitializationException:无法实例演员
确保演员不是类/特征中定义的,
如果是的话就把它的类/特性外,铁的陪伴对象,
或试图改变:"actorOf (道具[MyActor]'到'actorOf(道具(新的MyActor)'."

我可以想到在方括号内的类名后添加args的各种想法都会崩溃和烧毁.

sen*_*nia 26

你可以Props像这样使用:

val actorRef = TestActorRef(Props(new MyActor(param1, param2)))
Run Code Online (Sandbox Code Playgroud)

或像这样的工厂方法:

val actorRef = TestActorRef(new MyActor(param1, param2))
Run Code Online (Sandbox Code Playgroud)

查看apply对象中的方法TestActorRef.

  • 谢谢,这就是诀窍.我向val添加了一个类型声明:`val actorRef:TestActorRef [MyActor] = TestActorRef(Props(new MyActor(param1,param2)))`我现在能够干净利落地访问它. (2认同)