Тестирование выбора элемента JavaFX ListView - PullRequest
0 голосов
/ 26 апреля 2018

Я хотел бы создать модульный тест (с JUnit 5) для контроллера, который состоит только из ListView. Вариант использования, который я хочу протестировать, заключается в том, что при выборе / нажатии элемента вызывается правильный обратный вызов.

В моем модульном тесте я делаю следующее:

myController.theListUnderTesting.selectionModel.select(i-th element)

Но слушатель selectedItemProperty никогда не вызывается. Это, очевидно, работает без проблем при нормальном запуске и использовании приложения.

Я видел, что есть такие библиотеки, как TestFX, которые помогают в тестировании, но мне это не нравится, потому что оно запускает приложение и имитирует взаимодействие с пользователем на экране.

Есть ли способ протестировать такое поведение без необходимости запускать приложение и моделировать взаимодействие?

1 Ответ

0 голосов
/ 08 мая 2018

То, что я закончил, было:

Node nodeToClick = myController.getTheListUnderTesting().getChildrenUnmodifiable()[123];

            MouseEvent mouseEvent =
                    new MouseEvent(
                            MouseEvent.MOUSE_CLICKED,
                            0.0,
                            0.0,
                            0.0,
                            0.0, MouseButton.PRIMARY, 1, false, false, false, false, false, false, false, false, false, true,
                            new PickResult(nodeToClick, 0.0, 0.0)
                    );

            MouseEvent.fireEvent(nodeToClick, mouseEvent);
...