Scala PlayFramework-FakerRequest以上载文件

Scala PlayFramework-FakerRequest以上载文件,scala,playframework,Scala,Playframework,我正在尝试测试一个控制器来上传文件。控制器接收一个multipartform请求 在测试中,我以这种方式创建了一个伪造的测试 val tempFile = play.api.libs.Files.SingletonTemporaryFileCreator.create("prefix", "txt") val file = FilePart("upload", "hello.txt", Option("text/plain"), tempFile) val controller = new

我正在尝试测试一个控制器来上传文件。控制器接收一个multipartform请求

在测试中,我以这种方式创建了一个伪造的测试

val tempFile = play.api.libs.Files.SingletonTemporaryFileCreator.create("prefix", "txt")

val file = FilePart("upload", "hello.txt", Option("text/plain"), tempFile)

val controller = new LoadController(controllerComponents)

val formData = MultipartFormData(
    dataParts = Map(),
    files = Seq(file),
    badParts = Seq())
val response = controller.upload.apply(FakeRequest(POST, "/upload").
    withHeaders(HeaderNames.CONTENT_TYPE -> "multipart/form-data; boundary=------------------------968e587c4173725c").
    withMultipartFormDataBody(formData)) 
控制器通过
上传
键接收要上传的文件。如果我用curl、postman或其他rest客户机测试控制器,它可以工作,但在测试中,我总是收到消息
[输入意外结束]
,就好像
上传
键是空的一样


提前感谢

我遇到了同样的问题,发现您需要设置
MultipartFormData
dataParts
属性:

val formData = MultipartFormData(
  dataParts = Map("" -> Seq("dummydata")), 
  files =  Seq(file),
  badParts = Seq())

这样,我也不必设置内容类型/边界标题。

是否尝试删除标题?在游戏中,他们没有设置它们可能是因为这个
tempFile
是空的,这就是问题所在?出于某种原因,“上传”键似乎是空的