спрей-тесткит: не удалось найти неявное значение для параметра ta:

Первый раз пользователь спрея чуть не вырвал волосы.

trait SampleService extends SimpleRoutingApp with JsonProtocol with SprayJsonSupport {

  implicit val system: ActorSystem = ActorSystem("test")

  implicit def context: ExecutionContext = system.dispatcher

  startServer(interface = "localhost", port = 8888) {
    path("test") { _ =>
      get {
        complete {
          "test"
        }
      }
    }
  }
}

импортировать org.scalest.FlatSpec импортировать spray.testkit.ScalatestRouteTest

class ApiSpec extends FlatSpec with ScalatestRouteTest with SampleService {

  "The api service" should "return test" in {
    Get("/test/") ~> check {
      responseAs[String] === "test"
    }
  }
}

И замечательное сообщение об ошибке компиляции:

 could not find implicit value for parameter ta: ApiSpec.this.TildeArrow[ApiSpec.this.RouteResult,Boolean]
[error]     Get("/test/") ~> check {}

Может ли кто-нибудь указать мне правильное направление? Копирование и вставка из spray-testkit примеров, похоже, не удалась.


person flavian    schedule 24.02.2015    source источник
comment
Основной синтаксис при использовании testkit — request ~> route ~> check {}. Вам не хватает части route. Вам нужно поместить маршрут (начиная с path("test")) в def, где вы можете получить к нему доступ из документации. Официальный проект spray-template показывает общую базовую архитектуру создания легко тестируемых приложений. github.com/spray/spray-template/blob/   -  person jrudolph    schedule 24.02.2015
comment
Возможно, вам также не хватает импорта spray.json._   -  person Niko    schedule 05.07.2021