Есть ли функция для проверки выбора поля выбора в TestFX?

#java #javafx #testfx

#java #javafx #testfx

Вопрос:

Я хочу протестировать свой написанный графический интерфейс JavaFX с помощью TestFX. За один шаг есть несколько блоков выбора, которые я хочу протестировать.

До сих пор я пробовал следующий код:

 this.step("fill creation view", () -> {
      this.clickOn("#receiverChoiceBox").clickOn("Max Mustermann");

      verifyThat("#receiverChoiceBox",
          ComboBoxMatchers.hasSelectedItem(this.userInformationMap.get(2)));
    });
  

Однако это приведет к появлению следующего сообщения об ошибке:

 java.lang.AssertionError: 
Expected: ComboBox has selection "xxx.model.dto.UserInformationDto@d84f7f5d"
     but: was a xxx.gui.control.xxxChoiceBox (<xxxChoiceBox[id=receiverChoiceBox, styleClass=choice-box]>)
Expected :ComboBox has selection "xxx.model.dto.UserInformationDto@d84f7f5d"
Actual   :a xxx.gui.control.xxxChoiceBox (<xxxChoiceBox[id=receiverChoiceBox, styleClass=choice-box]>)
  

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

Ответ №1:

Теперь я решил проблему следующим образом:

 verifyThat("#receiverChoiceBox", node -> this.userInformationMap.get(2).equals(((ChoiceBox)node).getValue()));