Когда у меня есть родительский актер в Акке, он непосредственно создает дочернего актера при инициализации, когда я хочу написать модульные тесты для родительского актера, как я могу заменить дочернего актера тестовым или макетным?
Например, со следующим примером надуманного кода:
class TopActor extends Actor {
val anotherActor = context.actorOf(AnotherActor.props, "anotherActor")
override def receive: Receive = {
case "call another actor" => anotherActor ! "hello"
}
}
class AnotherActor extends Actor {
override def recieve: Receive = {
case "hello" => // do some stuff
}
}
Если я хочу написать тест для TopActor, чтобы проверить сообщение, отправленное в AnotherActor, это "привет", как заменить реализацию AnotherActor? Кажется, что TopActor создает этот ребенок напрямую, поэтому доступ к нему непросто.