tgk*_*tgk 4 scala playframework akka-http
我正在使用 Play 2.6.x 并且测试助手status(result)具有以下方法:
def status(of: Accumulator[ByteString, Result])(implicit timeout: Timeout, mat: Materializer): Int = status(of.run())
当编译器找不到隐式值时,运行测试会抛出:
could not find implicit value for parameter mat: akka.stream.Materializer
什么是 Materializer——我假设它是 Akka-HTTP 的一部分
我怎样才能提供一个?
来自 akka 流文档:
Materializer 是流执行引擎的工厂,它使流运行 [...]
该Materializer是阿卡流的基石,其上阿卡HTTP是建立在。您需要隐式解析其中之一才能使您的测试编译。
目前ActorMaterializer是唯一可用的Materializer. 它是一个Materializer基于 Akka 的actor。这就是为什么要创建一个,您又需要有一个ActorSystemin 范围的原因。
以下代码是您在测试中所需要的:
import akka.actor.ActorSystem
import akka.stream.ActorMaterializer
implicit val sys = ActorSystem("MyTest")
implicit val mat = ActorMaterializer()
Run Code Online (Sandbox Code Playgroud)