大家,
我正在使用 Grails 中的 spock 测试某些需要 CommonMultipartFile 作为输入参数的方法。
我的问题是如何创建这些文件,以便不生成本地文件。其中一些必须使用 request.getFile,所以我想我会在所有这些方法中使用 MockMultipartFile 类。
问题是它告诉我不能在以下转换中从 MockMultipartFile 转换为 CommonsMultipartFile:
CommonsMultipartFile commonsMultipartFile = (CommonsMultipartFile) request.getFile("filecsv")
有谁知道如何做这样的类型转换?P.S.:在此之前,我只做了以下事情:
MultipartFile multipartFile = new MockMultipartFile("filecsv","filecsv", "")
request.addFile(multipartFile)
最佳答案
您没有提到您使用的是 Spring 的类型,我必须先进行网络搜索。不要让人们试图帮助你猜测。相反,请解释或至少相应地标记问题(我只是为你做了那个)。
您不能强制转换不兼容的类型。两个 CommonsMultipartFile
和 MockMultipartFile
直接扩展Object
并实现 MultipartFile
和 InputStreamSource
接口(interface)。因此,您只能转换为它们的共同点,即其中一个接口(interface)。
顺便说一句,我从未使用过 Grails,但它的 API 似乎有一个 GrailsMockMultipartFile
延长 Spring MockMultipartFile
并提供 transferTo
的实现不使用文件系统。
关于spring - 如何测试 commonsMultipartFile 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62932489/