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

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

发布时间:2020-12-16 18:54:32 所属栏目:安全 来源:网络整理
导读:文档的 Writing functional tests部分非常吝啬,缺乏完全提交模拟表单值的详细信息.我以某种方式(不记得如何/在哪里)确定你可以通过将Map传递给FakeRequest来提交基本表单值(模拟POST请求),如下所示: val Some(result) = routeAndCall(FakeRequest(POST,"/pa
文档的 Writing functional tests部分非常吝啬,缺乏完全提交模拟表单值的详细信息.我以某种方式(不记得如何/在哪里)确定你可以通过将Map传递给FakeRequest来提交基本表单值(模拟POST请求),如下所示:

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,formData))

其中“image”是您希望在其中查找文件内容的HTML表单元素的名称.

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

(编辑:李大同)

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

    推荐文章
      热点阅读