我正在将某些Akka HTTP代码的同步ScalaTest测试切换为AsyncFunSpec。还有一种简单的方法可以使Akka TestKit测试异步吗?我说的是代码:
Get("/test") ~> testRoute ~> check {
responseAs[String] shouldEqual "Fragments of imagination"
}
我基本上需要的是check
的版本,它会返回Future
而不是调用await
。或者是一个帮助函数,它将HttpRequest
Get("/test")
转换为RequestContext
,以便我可以将路径应用到它。
答案 0 :(得分:0)
我最终使用了这样的东西:
import akka.http.scaladsl.client.RequestBuilding.Get
import akka.http.scaladsl.server.Route
val handler = Route.asyncHandler(testRoute)
for {
response <- handler(Get("/test"))
strict <- response.entity.toStrict
res <- strict.toString shouldEqual "Fragments of imagination"
} yield res