2

我正在将一些 Akka HTTP 代码的同步ScalaTest测试切换到AsyncFunSpec。是否也有一种简单的方法可以使Akka TestKit测试异步?我说的是这样的代码:

Get("/test") ~> testRoute ~> check {
    responseAs[String] shouldEqual "Fragments of imagination"
}

我基本上需要的是一个版本,check它返回 aFuture而不是调用await. 或者一个辅助函数,它将一个HttpRequestlikeGet("/test")转换为一个RequestContext,以便我可以将路由应用到它。

4

1 回答 1

1

我最终使用了这样的东西:

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
于 2017-08-22T14:50:44.953 回答