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

时间:2013-06-05 20:34:11

标签: scala testing akka actor

Akka Testing docs给出了以下创建TestActorRef的方法:

import akka.testkit.TestActorRef

val actorRef = TestActorRef[MyActor]

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

“创建actor时出错 akka.actor.ActorInitializationException:无法实例化Actor
确保Actor未在类/特征中定义,
如果是这样,把它放在类/特征之外,那么。在伴侣物体中,
或者尝试改变:'actorOf(Props [MyActor]'到'actorOf(Props(new MyActor)'。“

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

1 个答案:

答案 0 :(得分:26)

您可以像这样使用Props

val actorRef = TestActorRef(Props(new MyActor(param1, param2)))

或像这样的工厂方法:

val actorRef = TestActorRef(new MyActor(param1, param2))

请参阅对象TestActorRef中的apply个方法。