I wonder what is the canonical way of checking if an actor has stopped in an acc. Here is an example of how I am doing it now; I worry that I'm over complicating this.
import akka.actor.{Terminated, Actor, Props, ActorSystem} import akka.testkit.TestProbe class MyActor extends Actor { import MyActor._ override def receive: Receive = { case Stop => context.stop(self) } } object MyActor { def props = Props(new MyActor) case object Stop } object MyActorSpec { val system = ActorSystem() val myActor = system.actorOf(MyActor.props) val testProbe = TestProbe() case object MyActorStopped val watcher = system.actorOf(Props(new Actor { context.watch(myActor) override def receive: Actor.Receive = { case Terminated(`myActor`) => testProbe.ref ! MyActorStopped } })) myActor ! MyActor.Stop testProbe.expectMsg(MyActorStopped) }
source share