I have the following service:
trait PingService extends MyHttpService {
val pingRoutes =
path("ping") {
get {
complete("message" -> "pong")
}
}
}
MyHttpService
is a custom class that extends HttpService
and only contains utility methods.
This is the test spec:
import akka.actor.ActorRefFactory
import org.json4s.{DefaultFormats, Formats}
import org.scalatest.{FreeSpec, Matchers}
import spray.testkit.ScalatestRouteTest
class PingServiceSpec extends FreeSpec with PingService with ScalatestRouteTest with Matchers {
override implicit def actorRefFactory: ActorRefFactory = system
override implicit def json4sFormats: Formats = DefaultFormats
"Ping service" - {
"when calling GET /ping" - {
"should return 'pong'" in {
Get("/ping") ~> pingRoutes ~> check {
status should equal(200)
entity.asString should contain("pong")
}
}
}
}
}
Whenever I try to run the tests, I get the following error:
could not find implicit value for parameter ta: PingServiceSpec.this.TildeArrow[spray.routing.RequestContext,Unit]
Get("/ping") ~> userRoutes ~> check {
^
Am I doing something stupid? Any kind of help will be appreciated!
EDIT: Although this might look like a dupe of this question, it's not.
The solution provided in that post it's not working.
ActorRefFactory
in scope. The one from theScalatestRouteTest
thePingServiceSpec
is based on and the one declared explicitly asactorRefFactory
. – Impressionable