6

文档的编写功能测试部分非常少,并且缺少完整提交模拟表单值的详细信息。我以某种方式(不记得如何/在哪里)确定您可以通过传递 aMap来提交基本表单值(模拟 POST 请求),FakeRequest如下所示:

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

但是,这似乎不允许“上传”文件的情况。

4

1 回答 1

12

我们的文件上传测试如下所示:

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"您希望在其中找到文件内容的 HTML 表单元素的名称在哪里。

如果您BodyParsers.maxLength用于限制上传的大小,则可以替换formDataRight(formData)

于 2012-11-16T08:05:46.573 回答