- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为我的 Play 应用程序 Controller 编写测试用例,但在获取操作结果时遇到了问题。
val jsonresult = UserController.importOPML()(
FakeRequest(POST, "/user/import-opml",FakeHeaders(),data)
.withCookies(cookie)
)
parse.multipartFormData
,如果改为
parse.json
type mismatch; found : play.api.libs.iteratee.Iteratee[Array[Byte],play.api.mvc.SimpleResult] required: scala.concurrent.Future[play.api.mvc.SimpleResult]
val Some(jsonresult ) = route( request )
最佳答案
出现这个问题是因为 play.api.mvc.Action[A]
包含这两个应用方法:
// What you're hoping for
def apply(request: Request[A]): Future[Result]
// What actually gets called
def apply(rh: RequestHeader): Iteratee[Array[Byte], Result]
Request[A] extends RequestHeader
,所以
A
在这种情况下,一切都不同了。如果它与操作不匹配,您将调用错误的方法。
Action[AnyContent]
,那么你必须通过一个
Request[AnyContent]
-
Request[AnyContentAsJson]
会工作,但是
FakeRequest[JsValue]
不会,因为只有前者是
Request[AnyContent]
.
ActionBuilder
与
BodyParser[A]
,您创建一个
Action[A]
.因此,您需要一个
Request[A]
来测试,这意味着
data
的类型在你的问题中是至关重要的。
parse.json
返回 BodyParser[JsValue]
,所以 data
必须是 JsValue
parse.multipartFormData
返回 BodyParser[MultipartFormData[TemporaryFile]]
,所以 data
必须是多部分的表单数据。 关于scala - 将 Iteratee 转换为结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23311787/
使用 Play 2.1-RC1 我无法编写简单的测试。 这是操作代码: def echoTestTagFromXml = Action(parse.xml) { request => (req
我想,只是为了了解一些关于 Iteratees 的知识,使用 Data.Iteratee 和 Data.Attoparsec.Iteratee 重新实现我制作的一个简单的解析器。不过,我很难过。下面我
假设我正在从 InputStream 读取内容。 我通常会如何做: val inputStream = ... try { doStuff(inputStream) } finally {
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Why can’t a duplicate variable name be declared in a n
我正在为我的 Play 应用程序 Controller 编写测试用例,但在获取操作结果时遇到了问题。 val jsonresult = UserController.importOPML()(
可以使用流(惰性列表)从多个(为简单起见说两个)源中按需提取。 Iteratees 可用于处理来自单一来源的数据。 是否有类似 Iteratee 的功能概念来处理多个输入源?我可以想象一个 Itera
我正在尝试编写一个枚举器,用于使用 Scalaz 从 java.io.BufferedReader 逐行读取文件7 的 iteratee 库,目前只为 java.io.Reader 提供一个(非常慢的
首先,我了解迭代器的方式,足够了解我可以编写一个简单且有缺陷的实现,而无需引用任何现有的实现。 我真正想知道的是为什么人们似乎觉得它们如此迷人,或者在什么情况下它们的好处证明了它们的复杂性。将它们与惰
我在 Haskell 中有下一个代码,这对于读取文件的第一行很好,但我需要读取目录中文件的所有内容(许多文件递归)。我正在尝试更改 firstLineE 函数,我不明白如何更改行: EIO.enumF
在 Haskell 中,Iteratee based I/O看起来很吸引人。 Iteratees 是一种可组合的、安全的、快速的 I/O 方法,其灵感来自于函数式语言中的“fold”又名“reduce
我有一个简单的基于 attoparsec 的 pdf parser .它工作正常,直到与 iteratee 一起使用。 当输入的大小超过缓冲区大小时。 import qualified Data.By
play2中有一个play.api.libs.iteratee包,其中有一个大对象Iteratee,该行有1000多行。 为什么play2需要这么大的对象以及如何理解它? 最佳答案 我刚刚写了一篇文章
目前,有两种流行的选择来实现 iteratee pattern : enumerator package和 iteratee package . 它们的相对优势是什么?一个比另一个更好,还是取决于用例
我试图弄清楚 Lodash iteratee 的工作原理以及我将在哪里使用它。 The documentation says: Creates a function that invokes func
我希望能够创建一个可以无限重复一系列元素的枚举器,但我无法找到一种方法。当我创建递归枚举器时,当我尝试引用它时,似乎会溢出堆栈。例如,为了创建一个重复 A,B,C,D,A,B,C,D,A,B,C,D,
下划线 _.each ,有什么方法可以使用命名函数作为迭代器并向其传递参数吗? parseItems: function() { return _.each(this.items, this.pa
我正在使用 play2 和 reactivemongo 从 mongodb 获取结果。结果的每一项都需要进行转换以添加一些元数据。之后我需要对其进行一些排序。 为了处理转换步骤,我使用 enumera
我编辑了下面的代码,因为我认为我在 iter.next 问题之上错误地组合了 IterV 对象。 我正在 scalaz 中尝试使用 Iteratee,我想知道为什么以下内容不起作用。这是我所拥有的:
最近在玩scalaz.iteratee和 Play 的 iteratee .我认为 iteratee 提供模块化而不是旧的命令式 while 循环是一个好主意——目的是使用一个函数作为每个新行的处理程
我正在使用 underscorejs uniq 方法。 _.uniq( [{ name: 'a', family: 't' }, { name: 'b', family: 'n' }],
我是一名优秀的程序员,十分优秀!