#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()));