如何测试在Play Framework(使用Scala版本2.0,版本2.0)中期望上传文件的操作



文档的写作功能测试部分非常轻巧,并且缺乏完全提交模拟表单值的详细信息。我以某种方式(不记得/何时确定)可以通过将Map传递给FakeRequest的基本表单值(嘲笑邮政请求)这样

val Some(result) = routeAndCall(FakeRequest(POST, "/path/to/test", FakeHeaders(),
                                Map("postedVariable" -> Seq("and a value"))))

但是,这似乎不允许使用"上传"文件的情况。

我们的文件上传测试看起来像这样:

val tempFile = TemporaryFile(new java.io.File("/tmp/the.file"))
val part = FilePart[TemporaryFile](key = "image", filename = "the.file", contentType = Some("image/jpeg"), ref = tempFile)
val formData = MultipartFormData(dataParts = Map(), files = Seq(part), badParts = Seq(), missingFileParts = Seq())
val result = routeAndCall(FakeRequest(POST, "/path/to/test", FakeHeaders(), formData))

其中 "image"是您期望在。

如果您使用的是BodyParsers.maxLength来限制上传的大小,则可以用Right(formData)

替换formData

最新更新