我正在尝试模拟已选择了多个文件的JFileChooser
。目前我有一个嘲笑的文件。
在for循环中,selctedFiles
变量尚未初始化。我想循环几个文件。我正朝着正确的方向前进吗?
@Test
public void testValidateFile()
{
String name = this.getName();
System.out.println("Test case Name = " + name);
JFileChooser fileChooser = mock(JFileChooser.class);
when(fileChooser.showOpenDialog(masterView.getContentPane())).thenReturn(0);
when(fileChooser.getSelectedFiles()).thenReturn(new File("/myImages/IMG_0037.JPG"));
for (File currentFile : selectedFiles) {
System.out.println(currentFile.getName());
}
}
答案 0 :(得分:2)
根据文档,JFileChooser.getSelectedFiles()
会返回File
数组(不是File
列表)。即使它是一个列表,您也不需要模拟列表本身。您只需使用包含File
个对象的普通列表并模拟JFileChooser
即可返回该列表。在这种情况下,您使用File
数组。
首先创建File
数组:
File[] files = { new File("f1"), new File("f2"), new File("f3") };
然后模拟JFileChooser
对象:
JFileChooser fileChooser = mock(JFileChooser.class);
when(fileChooser.getSelectedFiles()).thenReturn(files);
然后你可以循环遍历fileChooser
返回的数组:
for (File currentFile : fileChooser.getSelectedFiles()) {
//...
}