В конечном итоге моя цель - написать специальную директиву Spray для использования различными маршрутами в существующем приложении. Я до сих пор не смог написать тест для моей новой директивы, поэтому я упростил его до тех пор, пока мой пользовательский код не был даже в игре. Я все еще не передаю то, что, по моему мнению, является тривиальным тестом. Что я делаю не так?Попытка запуска пустячного скалята на распыляемом маршруте
import org.scalatest.FlatSpec
import spray.http.StatusCodes
import spray.routing.{HttpService, Directives, Route}
import spray.testkit.ScalatestRouteTest
trait TrivialDirectivesTextFixture extends Directives {
def trivialRoute: Route =
path("test_route") {
get { requestContext =>
println("get")
complete(StatusCodes.OK, "trivial response")
}
}
}
class TrivialDirectivesSpec extends FlatSpec with TrivialDirectivesTextFixture with ScalatestRouteTest with HttpService {
def actorRefFactory = system
"TrivialDirectives" should "trivially match" in {
Get("/test_route") ~> sealRoute(trivialRoute) ~> check {
println("check")
assertResult(StatusCodes.OK) {
println("status " + status)
status
}
assertResult("trivial response") {
println("response " + response)
responseAs[String]
}
}
}
}
Полученный выход:
get
check
[info] TrivialDirectivesSpec:
[info] TrivialDirectives
[info] - should trivially match *** FAILED ***
[info] Request was neither completed nor rejected within 1 second (TrivialDirectivesSpec.scala:30)
Или вы просто удалите 'requestContext =>'. – jrudolph
Это тоже работает @jrudolph. Благодаря! – broadmonkey