wsa*_*ams 14 spring file-upload spring-mvc apache-commons
我有一个junit测试方法,它将CommonsMultipartFile对象作为参数.
我正在尝试创建一个FileItem对象,以便将其传递给构造函数,
CommonsMultipartFile(org.apache.commons.fileupload.FileItem fileItem)
Run Code Online (Sandbox Code Playgroud)
为此,我尝试使用DiskFileItem构造函数创建FileItem对象,
DiskFileItem(java.lang.String fieldName, java.lang.String contentType, boolean isFormField, java.lang.String fileName, int sizeThreshold, java.io.File repository)
Run Code Online (Sandbox Code Playgroud)
但我不知道如何传递任何这些参数.
我所有这些都在Spring 3 MVC控制器中工作,但是为了进行junit测试,我需要传递一个方法两个对象.一个是UploadItem对象,如下所示,
import org.springframework.web.multipart.commons.CommonsMultipartFile;
public class UploadItem {
private String fileName;
private String filePath;
private CommonsMultipartFile fileData;
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public String getFilePath() {
return filePath;
}
public void setFilePath(String filePath) {
this.filePath = filePath;
}
public CommonsMultipartFile getFileData() {
return fileData;
}
public void setFileData(CommonsMultipartFile fileData) {
this.fileData = fileData;
}
}
Run Code Online (Sandbox Code Playgroud)
setFileData()方法需要CommonsMultipartFile对象,我试图在我的src/test/resources目录中创建一个文件.
有谁知道如何获取文件,创建一个FileItem对象并将其传递给CommonsMultipartFile对象构造函数?
谢谢.如果有什么不清楚,请告诉我 - 我不熟悉Spring MVC文件上传.
Ral*_*lph 31
使用更常见的界面org.springframework.web.multipart.MultipartFile.而不是
org.springframework.web.multipart.commons.CommonsMultipartFile在您的Command(UploadItem)中.(CommonsMultipartFile是接口的1:1实现).
现在您可以CommonsMultipartFile使用mock类创建一个实例org.springframework.mock.web.MockMultipartFile.(这是元素spring-test.jar).
然后在测试中创建MultipartFile只是一个语句,没有任何强制转换:
MockMultipartFile mockMultipartFile = new MockMultipartFile(
"test.txt", //filename
"Hallo World".getBytes()); //content
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30296 次 |
| 最近记录: |