我试图模拟一个选择了多个文件的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());
}
}
根据文档,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()) {
//...
}