¿Cómo pruebo a un actor de Akka que envía un mensaje a otro actor?

Estoy usando ScalaTest con Akka TestKit para escribir pruebas de unidad e integración para un actor que he codificado para simplemente enviar un mensaje a otro actor sin mutar ningún estado interno. Toma esto por ejemplo:

class MyActor extends Actor {
  val anotherActor = context.actorOf(Props[AnotherActor])
  def receive: Receive = {
    case MyMessage => anotherActor ! AnotherMessage
  }
}

Quiero escribir una prueba que confirme queanotherActor procesadoAnotherMessage como consecuencia deMyActor tratamientoMyMessage. El ejemplo clásico es usarTestActorRef para llegar al actor subyacente y verificar si hay algún estado interno que debería haberse visto afectado al recibir el mensaje de la siguiente manera:

val testActorRef = TestActorRef(new MyActor)
"MyActor" should "change some internal state when it receives MyMessage" in {
  testActorRef ! MyMessage
  testActorRef.underlyingActor.someState shouldBe "altered"
}

Pero en mi caso no me importa ese estado. De hecho, quiero evitar tener tal estado.TestProbe no era exactamente lo que estaba buscando, ya que todavía tienes que registrar unTestProbe.ref con el actor bajo prueba. En su mayor parte, he visto todos los ejemplos en la documentación de Akka sobre pruebas (http://doc.akka.io/docs/akka/snapshot/scala/testing.html) pero no he encontrado nada adecuado.

Respuestas a la pregunta(1)

Su respuesta a la pregunta