Не завершающие тесты Java-интерфейса? - PullRequest
0 голосов
/ 03 марта 2011

Это может быть немного противоречиво.Но мне нужно запустить «тест», который в основном показывает редактор Java / представление и т. Д. И позволяет пользователю взаимодействовать с представлением, не запуская оставшееся приложение.

Что-то вроде:

  public static void main(String[] args) {
    Display display = new Display();
    final Shell shell = new Shell(display);
    shell.setSize(500, 500);
    shell.setLayout(new RowLayout());
    shell.setText("Composite Example");
    final Composite composite = new Composite(shell, SWT.NONE);
    GridLayout gridLayout = new GridLayout();
    gridLayout.numColumns = 4;
    composite.setLayout(gridLayout);

    // Here the view is shown
    MyExample sdf = new MyExample(composite, SWT.NONE);

    shell.open();
    while (!shell.isDisposed()) {
      if (!display.readAndDispatch())
        display.sleep();
    }
    display.dispose();
  } 

Есть ли более систематический способ сделать это (например, с помощью junit) для создания этих взаимодействующих с пользователем тестов, которые пользователь должен запускать и завершать вручную?

Ответы [ 2 ]

1 голос
/ 04 марта 2011

Сначала вы должны рассмотреть возможность рефакторинга вашего кода в более тестируемом режиме.Посмотрите на шаблон проектирования модель-представление-контроллер, см., Например, http://java.sun.com/blueprints/patterns/MVC-detailed.html

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

Если вы все-таки решите пройти тестирование графического интерфейса, я бы предложил SWTBot, как предложил Золтан.Он прекрасно интегрируется с Eclipse.

1 голос
/ 04 марта 2011

Я думаю, вам нужен инструмент для тестирования GUI. Во-первых, я знаю, что это не то, что вы хотели, но это могло бы служить автоматическим способом «нажатия кнопок графического интерфейса».

Я бы предложил SWTBot или WindowTester для экспериментов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...