У меня есть простая игра-змея java. Я пытаюсь проверить, что происходит, когда я нажимаю много ключей за короткий промежуток времени. Змея - моя рамка, а Совет - это JPanel, где все происходит.Как создать тест JUnit, который выполняется до тех пор, пока не будет выполнено определенное условие?
boolean stop=false;
Snake snake= new Snake();
KeyEvent key_right = new KeyEvent(snake.board, KeyEvent.KEY_PRESSED, System.currentTimeMillis(), 0, KeyEvent.VK_RIGHT,'Z');
KeyEvent key_up = new KeyEvent(snake.board, KeyEvent.KEY_PRESSED, System.currentTimeMillis(), 0, KeyEvent.VK_UP,'Z');
KeyEvent key_down = new KeyEvent(snake.board, KeyEvent.KEY_PRESSED, System.currentTimeMillis(), 0, KeyEvent.VK_DOWN,'Z');
KeyEvent key_left = new KeyEvent(snake.board, KeyEvent.KEY_PRESSED, System.currentTimeMillis(), 0, KeyEvent.VK_LEFT,'Z');
KeyEvent vect[]={key_right,key_down,key_left,key_up};
int i=0,nr=0;
Timer timer = new Timer();
@Test
public void StresTaste() {
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
if(!stop){
snake.board.getKeyListeners()[0].keyPressed(vect[i]);
System.out.println(nr);
i++;nr++;
if(i==3) i=0;
if(nr==200){stop=true;}
}
}
}, 1, 1);
}
Я создаю массив keyEvents и перебираю его через переменную i. Я передаю их в keyListener JPanel. Все работает нормально .. но оно останавливается на чем-то более ста ... не одинаковое значение каждый раз. Пожалуйста, помогите. Можно ли это реализовать?
спасибо! Отличное объяснение. –