Scala 将指定的演员注入到游戏中!试验
我有一个使用自定义Akka演员的web应用程序 我使用@Named注释注入参与者,如下所示:Scala 将指定的演员注入到游戏中!试验,scala,playframework,akka,Scala,Playframework,Akka,我有一个使用自定义Akka演员的web应用程序 我使用@Named注释注入参与者,如下所示: @Singleton class Thing @Inject()(@Named("scheduler-actor") schedulerActor: ActorRef) ... 我想将这个参与者注入到我的测试中,这样我就可以向它发送消息,但我不知道如何做到这一点 我正在使用injection特性,该特性允许我访问injection函数,但似乎没有任何替代的injection函数允许我传入名称 互联网上
@Singleton
class Thing @Inject()(@Named("scheduler-actor") schedulerActor: ActorRef) ...
我想将这个参与者注入到我的测试中,这样我就可以向它发送消息,但我不知道如何做到这一点
我正在使用injection
特性,该特性允许我访问injection
函数,但似乎没有任何替代的injection
函数允许我传入名称
互联网上有没有给一部戏注入演员的例子!测试
更新1 经过一点研究,我想出了这个解决方案,但感觉有点粗糙 首先,我安装了Akka测试套件
libraryDependencies += "com.typesafe.akka" %% "akka-testkit" % "2.5.22" % Test
然后我使用了TestActorRef
如下:
import actors.SchedulerActor.RefreshDevicesFromCCU
import akka.actor.{ActorRef, ActorSystem}
import akka.testkit.TestActorRef
import org.scalatest.BeforeAndAfterAll
import org.scalatestplus.play.PlaySpec
import utils.DatabaseSetupTearDown
class SchedulerActorSpec
extends PlaySpec
with GuiceOneAppPerSuite
with Injecting {
implicit val system: ActorSystem = inject[ActorSystem]
val schedulerActor: SchedulerActor = inject[SchedulerActor]
val schedulerActorRef: ActorRef = TestActorRef(schedulerActor)
...
}