如何测试 commonsMultipartFile 文件?

How to test commonsMultipartFile files?

各位, 我正在 Grails 中使用 spock 测试某些需要 CommonMultipartFile 作为输入参数的方法。

我的问题是如何创建这些文件以便不生成本地文件。其中一些必须使用 request.getFile,所以我想我会在所有这些方法中使用 MockMultipartFile class。

问题是它告诉我您不能在以下转换中从 MockMultipartFile 转换为 CommonsMultipartFile:

CommonsMultipartFile commonsMultipartFile = (CommonsMultipartFile) request.getFile("filecsv") 

有谁知道如何进行这样的转换?

P.S.: 在此之前我只做了以下事情:

MultipartFile multipartFile = new MockMultipartFile("filecsv","filecsv", "")
request.addFile(multipartFile)

您没有提到您正在使用 Spring 中的类型,我必须先进行网络搜索。不要让人们试图帮助您猜测。相反,请相应地解释或至少标记问题(我只是为你做了)。

您不能转换不兼容的类型。 CommonsMultipartFile and MockMultipartFile 都直接扩展了 Object 并实现了 MultipartFileInputStreamSource 接口。所以你只能投射到他们共有的东西,即那些接口之一。

顺便说一句,我从未使用过 Grails,但它的 API 似乎有一个 GrailsMockMultipartFile 扩展了 Spring MockMultipartFile 并提供了 transferTo 不使用文件系统。