Matteo Pacini Matteo Pacini - 1 year ago 89
Scala Question Can't compile test spec

I have the following service:

trait PingService extends MyHttpService {

val pingRoutes =
path("ping") {
get {
complete("message" -> "pong")

is a custom class that extends
and only contains utility methods.

This is the test spec:

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.

edi edi
Answer Source

The ScalatestRouteTest already provides an implicit ActorSystem. Remove the implicit modifier from your actorRefFactory method and the test should get executed.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download