Базовое использование Spray-Testkit для проверки маршрута не работает

Я пытаюсь использовать маршрут распыления и хочу проверить его с помощью Spray-TestKit. Я использую: - Scala 2.10.3 - Akka 2.3.3 - Spray 1.3.1

Я создаю черту, расширяющую HttpService, где я определяю маршрут:

trait MyService extends HttpService with CoreAccess {
  import greentee.am.endpoint.tsmsp.tsmSPJsonSupport._


  val myRoute = {
    path("resources"/"ping") {
      get {
        complete(OK, "pong")
      }
    } 
  }
}

Я удалил часть маршрута, которая не была релевантной. CoreAccess - это расширяющий черту Actor, потому что у меня есть методы с этой чертой для доступа к ActorSystem. (Я не знаю, кто должен извлечь ActorSelection из черты, не расширяя актера)

Затем я создаю тестовую спецификацию

import MyService
import org.specs2.mutable.Specification
import spray.testkit.Specs2RouteTest
import spray.http.StatusCodes._


class RegistrationRouteSpecification extends Specification with Specs2RouteTest with MyService {

  def actorRefFactory = system

  "The EndPoint " should {
    "return Pong to a Get request to the ping" in {
      Get("/resources/ping") ~> myRoute ~> check {
        status === OK
        responseAs[String] === "pong"
      }
    }
  }
}

Когда я пытаюсь выполнить тест, я получаю следующую ошибку компиляции:

[info] Compiling 1 Scala source to /Users/IdeaProjects/endpoint/target/scala-2.10/test-classes...
[error] /Users/IdeaProjects/endpoint/src/test/scala/RegistrationRouteSpecification.scala:19: could not find implicit value for parameter ta: RegistrationRouteSpecification.this.TildeArrow[spray.routing.RequestContext,Unit]
[error]       Get("/resources/ping") ~> myRoute ~> check {
[error]                                     ^
[error] one error found

1 ответ

Я отвечаю на свой вопрос. Я исправил свой Build.scala, чтобы использовать следующие строки:

val scalaCheck   = "org.scalacheck"             %% "scalacheck"     % Versions.scalaCheckVersion % "test"
val scalaTest =  "org.scalatest"   %%   "scalatest"  % "2.2.0" % "test"

Вместо использования простого "%" и предоставления выделенной версии.

Другие вопросы по тегам