2012-05-04 2 views
3

У меня возникли проблемы с некоторыми тестовыми примерами, которые используют JFileChoosers. Я ищу способ программно избавиться от окон выбора файлов (вместо нажатия ESC 7 раз) при запуске тестов JUnit.JUnit и JFileChoosers

Я попытался включить следующее в моем тесте:

Robot robot = new Robot(); 
robot.delay(1000); 
robot.keyPress(KeyEvent.VK_ESCAPE); 

Это не похоже на работу. У вас есть предложение?

Заранее спасибо.

+0

Хороший вопрос! Не будет ли робот работать вообще? Вы пытались поместить его в заявку try/catch? Таким образом, вы можете следить за тем, что происходит не так. –

+0

Я попытался поместить его в инструкцию try/catch, но не поймал. Кроме того, если я устанавливаю robot.delay (10000), я замечаю, что задержка 10 секунд задержка ** после ** отклонения файла была уволена. – Kukiwon

ответ

2

Просто предположите, но звучит так, будто вы используете Robot в той же теме, что и вы запускаете JFileChooser. Если память используется, многие методы JFileChooser блокируют текущий поток, пока пользователь не выберет файл.

Попробуйте запустить Robot в отдельном потоке, если вы еще этого не сделали.

EDIT:

Например:

// Start Robot in a new thread. 
new Thread(new Runnable() { 
    @Override 
    public void run() { 
     Robot robot = new Robot(); 
     robot.delay(1000); 
     robot.keyPress(KeyEvent.VK_ESCAPE); 
    } 
}).start(); 

// Launch JFileChooser. 
jFileChooser.getSelectedFile(); 
+0

Спасибо, что работает :) – Kukiwon

+0

Хороший ответ! upvote :) –