title: How do I supply an implicit value for an akka.stream.Materializer when sending a FakeRequest?
body: <p>I'm trying to make sense of the error(s) I'm seeing below, and to learn how to fix it. </p>
  
  <pre><code>could not find implicit value for parameter materializer: akka.Stream.Materializer
    val fut: Future[Result] = action.apply(fakeRequest).run
                                    ^
  not enough arguments for method run (implicit materializer: akka.stream.Materializer)scala.concurrent.Future[play.api.mvc.Result].
  Unspecified value parameter materializer.
    val fut: Future[Result] = action.apply(fakeRequest).run
                                    ^
  </code></pre>
  
  <p>Here is the test code that produced the error(s):</p>
  
  <pre><code>package com.foo.test
  
  import com.foo.{Api, BoundingBox}
  import org.scalatest.{FlatSpec, Matchers}
  import play.api.libs.json._
  import play.api.mvc._
  import play.api.test.{FakeHeaders, FakeRequest}
  
  import scala.concurrent.duration._
  import scala.concurrent.{Await, Future}
  
  class TestJmlPlay extends FlatSpec with Matchers {
  
    val bbox = new BoundingBox(-76.778154438007732F, 39.239828198015971F, -76.501003519894326F, 39.354663763993926F)
  
    "latitudes" should "be between swLat and neLat" in {
      val action: Action[AnyContent] = (new Api).getForPlay(bbox)
      val jsonStr = getStringFromAction(action)
      areLatitudesOk(jsonStr, bbox) shouldBe true
    }
  
    private def getStringFromAction(action:Action[AnyContent]):String = {
      val fakeRequest: Request[String] = new FakeRequest("fakeMethod", "fakeUrl", new FakeHeaders, "fakeBody")
      val fut: Future[Result] = action.apply(fakeRequest).run  // &lt;== ERROR!
      val result = Await.result(fut, 5000 milliseconds)
      result.body.toString
    }
  
    private def areLatitudesOk(jsonStr: String, bbox: BoundingBox): Boolean = ...
  
  }
  </code></pre>