TestFXでArithmeticProblem
クラスの単体テストを書きました。ここでTestFXで複数のシーンをテストする方法
public class ArithmeticProblemTextFx extends TestFxBase {
@Test(expected = FxRobotException.class)
public void fxIdNotExist() {
clickOn("#test123");
}
@Test
public void allComponentsShouldHaveRightText() {
verifyThat("#jfxButtonCheck", hasText("PRÜFEN"));
verifyThat("#jfxButtonNextArithmeticProblem", hasText("NÄCHSTE AUFGABE"));
verifyThat("#jfxButtonSave", hasText("SPEICHERN"));
verifyThat("#jfxTextFieldResult", hasText(""));
}
@Test
public void checkTextFieldResult() {
JFXTextField jfxTextFieldResult = find("#jfxTextFieldResult");
JFXButton jfxButtonCheck = find("#jfxButtonCheck");
jfxTextFieldResult.setText("5");
assertFalse(
"Der Button ist darf NICHT disable sein, da eine Zahl in TextFieldResult steht.",
jfxButtonCheck.isDisable()
);
jfxTextFieldResult.setText("g");
assertTrue(
"Der Button muss disable sein, da KEINE Zahl in TextFieldResult steht.",
jfxButtonCheck.isDisable()
);
}
@Test
public void checkJfxButtonSaveClick() {
clickOn("#jfxButtonSave");
verifyThat("#labelTotalResults", hasText("0"));
verifyThat("#labelNumberOfRightResults", hasText("0"));
verifyThat("#labelAmountOfRightResults", hasText("(0%)"));
verifyThat("#labelNumberOfWrongResults", hasText("0"));
verifyThat("#labelAmountOfWrongResults", hasText("(0%)"));
verifyThat("#labelTimePerArithmeticProblem", hasText(""));
verifyThat("#labelMark", hasText("-"));
verifyThat("#labelRightResult", hasText(""));
verifyThat("#jfxTextFieldResult", hasText(""));
}
@Test
public void checkJfxButtonNextArithmeticProblemClick() {
clickOn("#jfxButtonNextArithmeticProblem");
verifyThat("#labelRightResult", hasText(""));
verifyThat("#jfxTextFieldResult", hasText(""));
verifyThat("#labelTimePerArithmeticProblem", hasText(""));
}
}
は私がMain.classをロードすると、それが唯一のArithmeticProblem-シーンを表示する "TestFxBase"
public class TestFxBase extends ApplicationTest {
@Before
public void setUpClass() throws Exception {
ApplicationTest.launch(Main.class);
}
@After
public void afterEachTest() throws TimeoutException {
FxToolkit.hideStage();
release(new KeyCode[]{});
release(new MouseButton[]{});
}
@Override
public void start(Stage stage) throws Exception {
stage.show();
}
public <T extends Node> T find(final String query) {
return (T) lookup(query).queryAll().iterator().next();
}
}
のコードです。それはどのように見えるのですか?
私は他のシーンをロードできるかわからないので、だから私は、ArithmeticProblem.classをテストすることができます。 私のメニューには、評価や設定のようないくつかの点がありますが、どのようにこのシーンを読み込むことができますか?
この詳細な回答をいただき、ありがとうございます。私はあなたに投票しますが、私は15未満の評判しか持っていません。 – user6590187
気にしないでください。私はあなたを助けてうれしかったです。答えが正しければ、あなたが望むならそれを受け入れるかもしれません。 – Vanguard