如何对JavaFX应用程序启动进行单元测试

ski*_*iwi 5 java unit-testing javafx javafx-8 testfx

我有一个JavaFX应用程序,我想测试它是否启动.我该怎么做呢?是否可以使用JUnit,或者TestFX可以帮助我吗?

我的主要问题是:如何在(成功)启动后立即关闭应用程序?

示例应用程序类:

public class MovieDB extends Application {
    @Override
    public void start(final Stage primaryStage) throws IOException {
        FXMLLoader fxmlLoader = new FXMLLoader(MovieDBController.class.getResource("MovieDB.fxml"), ResourceBundle.getBundle("bundles/bundle", new Locale("en")));
        Parent root = fxmlLoader.load();

        Scene scene = new Scene(root, 1024, 768);

        StyleManager.getInstance().addUserAgentStylesheet(getClass().getResource("/css/MovieDB.css").getPath());

        primaryStage.setTitle("MovieDB");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}
Run Code Online (Sandbox Code Playgroud)

小智 0

假设primaryStage是唯一打开的stage,当您调用primaryStage.hide()时,JavaFX线程将自动关闭。这是因为 JavaFX 默认设置为在隐藏所有阶段时关闭,可以通过调用 来更改Platform.setImplicitExit(false)

更多信息请点击这里