У меня есть следующее приложение JavaFX и просто хочу проверить, что основной метод не дает никаких ошибок, как бы я это сделал и должен ли я это сделать?
public class GUISimple extends Application {
@Override
public void start(final Stage primaryStage) throws IOException {
primaryStage.setTitle("TCG Console");
Parent root = FXMLLoader.load(ConsoleController.class.getResource("console.fxml"));
Scene scene = new Scene(root);
primaryStage.setScene(scene);
primaryStage.centerOnScreen();
primaryStage.show();
}
public static void main(String... args) {
launch(args);
}
}
Что я до сих пор:
public class GUISimpleTest {
@Test
public void testMain() {
GUISimple.main();
}
}
Я уже тестировал другие классы, включая ConsoleController
и GUI с TestFX. Для этого конкретного теста я использую JUnit.
Однако ключевая точка здесь заключается в том, что ConsoleController
запускает еще один поток, который запускается после GUISimple.main()
.
Вызов System.exit(0)
и Platform.exit()
кажется завершающим. Как я могу это сделать?
launch() блокирует поток для JavaFX. Начните GUISimple.main() в отдельном потоке, например:
@Test
public void testMain() {
new Thread(new Runnable() {
@Override
public void run() {
try {
// Do something
Thread.sleep(3000);
}
catch (InterruptedException e) {
}
System.exit(0);
}
}).start();
GUISimple.main();
}