title: How to respond to an Ask pattern with a failure using Akka TestKit?
body: <p>I have an Akka Actor which uses the Ask pattern to retrieve a Future from a child actor and acts on both success and failure. I cannot work out how to mock out the child actor and respond with failures.</p>
  
  <p>Here's the code:</p>
  
  <pre><code>import java.util.concurrent.TimeUnit
  import akka.actor.{Actor, ActorRef, ActorSystem, Props}
  import akka.pattern.ask
  import akka.testkit.{ImplicitSender, TestKitBase, TestProbe}
  import akka.util.Timeout
  import org.specs2.mutable.Specification
  import org.specs2.specification.Scope
  import scala.util.{Failure, Success}
  
  class Parent(child: ActorRef) extends Actor {
    implicit val timeout = Timeout(5, TimeUnit.SECONDS)
    import context.dispatcher
  
    override def receive: Receive = {
      case "go" =&gt; {
        val senderRef = sender()
        (child ? "question").mapTo[String] onComplete {
          case Success("answer") =&gt;
            senderRef ! "child responded with a successful answer"
          case Failure(throwable) =&gt;
            senderRef ! "child responded with a failure"
        }
      }
    }
  }
  
  class SimplifiedProblemSpec extends Specification {
  
    "The Parent Actor" should {
      "act on success" in new TestScope {
        parent ! "go"
        childProbe.expectMsg("question")
        childProbe.reply("answer")
        expectMsg("child responded with a successful answer")
      }
      "act on failure" in new TestScope {
        parent ! "go"
        childProbe.expectMsg("question")
        // How to reply with failure?
        expectMsg("child responded with a failure")
      }
    }
  
  }
  
  abstract class TestScope extends Scope with TestKitBase with ImplicitSender {
    implicit lazy val system: ActorSystem = ActorSystem()
  
    val childProbe = TestProbe()
    val parent = system.actorOf(Props(classOf[Parent], childProbe.ref), "Parent")
  
  }
  </code></pre>
  
  <p>Any help would be much appreciated.</p>
  
  <p>Thank you</p>