如何正确管理对顶级演员的引用。
我用那个
object MyController extends Controller {
lazy val supervisor = Akka.system.actorOf(Props[SupervisorActor])
但是我的测试失败了,因为akka系统在测试之间重新启动......
测试代码与播放示例非常相似:
class IntegrationSpec extends Specification {
"Application" should {
"example1" in new WithBrowser(WebDriverFactory(FIREFOX)) {
…
}
"example2" in new WithBrowser(WebDriverFactory(FIREFOX)) {
…
}
答案 0 :(得分:0)
我终于找到了黑客,因为FakeApplication
也使用了Global
。
如果有更好的方法,请告诉我......
object Global extends GlobalSettings {
var supervisor : ActorRef = null;
override def onStart(app: Application) {
supervisor = Akka.system.actorOf(Props[SupervisorActor])
}
}
[edit]根据@jean的建议,我修改了代码以使用名为Actor
的代码,因此我不再需要在object
中保留引用。
override def onStart(app: Application) {
Akka.system.actorOf(Props[SupervisorActor], "supervisor")
}
我可以通过以下方式检索演员:
context.actorSelection("/user/supervisor")