gpt4 book ai didi

scala - 如何在 play 2.5 中测试使用自定义解析器的 Controller 方法?

转载 作者:行者123 更新时间:2023-12-04 18:53:24 25 4
gpt4 key购买 nike

我的 Controller 方法:

def postCategory = Action(parse.tolerantText) { request =>
Ok("")
}

这是我的测试:
val result = categoryController.postCategory.apply(FakeRequest())
status(result) mustEqual OK //error this line

我有这个错误:

Error:(63, 14) type mismatch; found : play.api.libs.streams.Accumulator[akka.util.ByteString,play.api.mvc.Result] required: scala.concurrent.Future[play.api.mvc.Result] status(result) mustEqual OK ^



似乎使用自定义解析器 parse.*使它返回 Accumulator而不是 Future[Result]
我正在使用 play 2.5-RC2

最佳答案

你应该使用 result.run 使用 Guice 获取 Materializer 的实例

看起来像:

import akka.stream.Materializer
//...

def mockApp = new GuiceApplicationBuilder().build()
val mtrlzr = mockApp.injector.instanceOf[Materializer]

val result: Accumulator[ByteString, Result] = controller.accessToken()(FakeRequest())
val runResult: Future[Result] = result.run()(mtrlzr)

关于scala - 如何在 play 2.5 中测试使用自定义解析器的 Controller 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35685066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com