加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 18:01:14 所属栏目:安全 来源:网络整理
导读:我的控制器方法: def postCategory = Action(parse.tolerantText) { request = Ok("") } 这是我的考验: val result = categoryController.postCategory.apply(FakeRequest()) status(result) mustEqual OK //error this line 我有这个错误: Error:(63,14)
我的控制器方法:

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
^

似乎使用自定义解析器解析.*使得它返回Accumulator而不是Future [Result]

我正在玩2.5-RC2

解决方法

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

看起来像:

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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读