Scala/Akkaで小さなテストをしています
"test test" in {
val actor = TestActorRef(new Actor {
override def receive: Receive = {
case _ =>
println("Inside actor " + context.parent)
context.parent ! 42
}
})
println("Self " + self)
actor ! "Hello"
expectMsg(42)
}
それが生成する出力は
Self Actor[akka://testSystem/system/testActor1#-1014751973]
Inside actor Actor[akka://testSystem/user]
(...)
assertion failed: timeout (3 seconds) during expectMsg while waiting for 42
java.lang.AssertionError: assertion failed: timeout (3 seconds) during expectMsg while waiting for 42
ログに表示されているcontext.parent
ように、アクターの内部が本当の親ではないのはなぜですか? testActor1
(これは、サブジェクトを作成したときに親になると予想されるアクターです)。
もしその状態が予想されるなら - もしそうなら、なぜですか? そのようなアプローチの利点は見当たりません。