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

标签 scala testing akka actor

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

import akka.testkit.TestActorRef

val actorRef = TestActorRef[MyActor]

我如何扩展它以测试接受构造函数参数的现有 actor?当我尝试按原样运行它并替换为我的 actor 类时,出现以下错误:

“创建 Actor 时出错 akka.actor.ActorInitializationException:无法实例化 Actor
确保 Actor 没有在类/特征中定义,
如果是这样的话,把它放在类/特征之外,f.e.在伴生对象中,
或者尝试更改:'actorOf(Props[MyActor]' 到 'actorOf(Props(new MyActor)'。"

我想出的在方括号内的类名后添加 args 的各种想法也都崩溃了。

最佳答案

你可以使用 Props像这样:

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

或者像这样的工厂方法:

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

参见对象中的apply 方法TestActorRef .

关于scala - 如何在 Scala 中为具有构造函数参数的 Actor 创建 TestActorRef?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16949348/

相关文章:

java - LocalDateTime 作为总纳秒

scala - Scala Spark 中的分布式映射

node.js - 需要在 node.js 中测试

scala - 终止 Actor 和 ActorSystem 后应用程序未退出

java - 将 PgArray 或 java.sql.Array 转换为 Scala 集合

scala - Slick where/filter/withFilter

reactjs - 导入图像会破坏 Jest 测试

android - Jacoco for Android Instrumentation Test 使用 AndroidJunit

scala - 2.10中Akka和scala.actors的关系

Scala 案例类在接收方法中不匹配(在 akka Actor 中)