Как протестировать JavaFX с огурцом?

Я хочу написать приложение JavaFX, используя BDD и Cucumber.

Я уже нашел библиотеку TestFX, которая могла бы мне здесь помочь, но до сих пор не нашел подходящей настройки. Моя основная проблема - перезапуск приложения для разных сценариев.

Я хочу написать фоновый шаг следующим образом:

Given that the application is freshly launched

Этот шаг может быть реализован путем

thread = new Thread(() -> Application.launch(appClass));
thread.start();

Однако жизненный цикл JavaFX запрещает перезапуск приложения. Моей следующей идеей было оставить приложение живым, но сбрасывать сцену приложения перед каждым сценарием. Здесь я действительно висел. Пока я не нашел способа получить запущенный экземпляр Application и установить новую сцену в его Stage. Какие-либо предложения?

Или есть более простой способ сделать BDD с JavaFX?


person grackkle    schedule 02.08.2014    source источник
comment
groups.google.com/forum/#!topic/cukes/ocUbqljxAlI связанные?   -  person Vrashabh Irde    schedule 12.08.2014
comment
К настоящему времени я перешел к альтернативе, тестируя не сам графический интерфейс, а GuiModel. Архитектура является своего рода расширенным MVC, где у меня есть модель, контроллер, модель представления (за интерфейсом) и fxmlController. Контроллер слушает модель и модель представления и действует на них. модель представления просто моделирует вещи, связанные с графическим интерфейсом, и является единственным классом, который знает fxmlController. В целях тестирования я заменяю модель просмотра на dummyViewModel, отправляю оттуда события и проверяю ее состояние.   -  person grackkle    schedule 22.01.2015


Ответы (1)


пожалуйста, проверьте ниже веб-URL: (JavaFX с огурцом)

http://permalink.gmane.org/gmane.comp.programming.tools.cucumber/13614
person AtmiyaDas2014    schedule 12.08.2014
comment
Извините, но я не нашел там ничего полезного. Вопрос остается ... Я также видел в примечании о предстоящих функциях TestFX, что они хотят интегрировать поддержку огурцов позже. Я предполагаю, что в настоящее время нет чистого способа сделать это... - person grackkle; 22.10.2014