是否可以模拟文件列表



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

相关内容

  • 没有找到相关文章