Я хочу проверить, что preStart() создает правильное дерево актеров (исправьте меня, если я выбрал неправильное место для создания дерева актеров).Создание тестовых актеров в akka hooks (preStart)
class Central extends Actor {
var summer : ActorRef = _
override def preStart() = {
val printerProps = Props[Printer]
val printer = context.actorOf(printerProps, "printer")
val summerProps = Props(new Summer(printer))
summer = context.actorOf(summerProps, "summer")
}
override def receive = {
case msg =>
}
}
Для полной картины:
class Printer extends Actor {
override def receive = {
case msg => println(msg)
}
}
class Summer(printer: ActorRef) extends Actor {
override def receive = {
case (x: Int, y: Int) =>
printer ! x + y
}
}
Любая идея, как сделать четкий тест этого?
Этот ответ https://stackoverflow.com/a/18877040/1768378 близок к тому, что я ищу. Но я думаю, что код изменения, потому что причина теста - плохая идея.
Возможно, кто-то знает лучшее решение.
Обратите внимание, что, в случае, если вы не получите ответ в течение 3-х секунд, это не является гарантией того, что не была создана ваша актер. Но, возможно, у вас есть еще одна проблема, если она реагирует так медленно. –
Да, это правильно. И ошибка теста - это правильный сигнал. –