我正在为 play2.1 编写一个使用路由函数的多部分表单的后置控制器测试。
route(
FakeRequest(POST,
postControllerRoute().url,
FakeHeaders(Seq(HeaderNames.CONTENT_TYPE -> Seq("multipart/form-data"))),
body = body
).withAuthToken.withAdmin(adminId))
我发现为了使这段代码正常工作,我需要定义一个 Writeable[MultipartFormData[TemporaryFile]] 类型的可写对象,因为我的 body 变量的类型为 MultipartFormData[TemporaryFile]。我不确定如何序列化多部分请求,或者这是否是正确的方法。有什么建议么?
Edited
答案:跳过路由器并直接使用控制器,如文档中所示:http://www.playframework.com/documentation/2.1.0/ScalaFunctionalTest
- 你有两个选择,序列化
MultiPartFormData
(据我所知)这是相当棘手的。这篇文章可能会有所帮助:https://groups.google.com/forum/?fromgroups=#!topic/play-framework/MPtQlX-cWMQ
- 您可以跳过
route
方法。如果您想测试Action
在您的控制器中,您可以简单地绕过该路线。看测试您的控制器在文档中。如果不经过路由器,则无需提供Writable
。很少需要通过路由器,它本质上是让您首先将其写为字节(使用Writer
)然后(使用主体解析器)将其转换回 Play 可以理解的内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)