2014-02-09 4 views
0

Я пытаюсь высмеять 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()); 
    } 
} 

ответ

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()) { 
    //... 
} 
Смежные вопросы