gpt4 book ai didi

junit - JavaFX 8 的基本 JUnit 测试

转载 作者:太空宇宙 更新时间:2023-11-04 13:09:38 24 4
gpt4 key购买 nike

我想为 JavaFX 8 应用程序创建基本的 JUnit 测试。我有这个简单的代码示例:

public class Main extends Application {
public static void main(String[] args) {
Application.launch(args);
}
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("Tabs");
Group root = new Group();
Scene scene = new Scene(root, 400, 250, Color.WHITE);
TabPane tabPane = new TabPane();
BorderPane borderPane = new BorderPane();
for (int i = 0; i < 5; i++) {
Tab tab = new Tab();
tab.setText("Tab" + i);
HBox hbox = new HBox();
hbox.getChildren().add(new Label("Tab" + i));
hbox.setAlignment(Pos.CENTER);
tab.setContent(hbox);
tabPane.getTabs().add(tab);
}
// bind to take available space
borderPane.prefHeightProperty().bind(scene.heightProperty());
borderPane.prefWidthProperty().bind(scene.widthProperty());

borderPane.setCenter(tabPane);
root.getChildren().add(borderPane);
primaryStage.setScene(scene);
primaryStage.show();
}
}

到目前为止我只有这段代码:

import javafx.application.Application;
import javafx.stage.Stage;
import org.junit.BeforeClass;

public class BasicStart extends Application {

@BeforeClass
public static void initJFX() {
Thread t = new Thread("JavaFX Init Thread") {
@Override
public void run() {
Application.launch(BasicStart.class, new String[0]);
}
};
t.setDaemon(true);
t.start();
}

@Override
public void start(Stage primaryStage) throws Exception {
// noop
}
}

你能告诉我如何为上述代码创建 JUnit 测试吗?

最佳答案

我使用 Junit 规则在 JavaFX 线程上运行单元测试。详情见this post 。只需复制该帖子中的类,然后将此字段添加到您的单元测试中即可。

@Rule public JavaFXThreadingRule javafxRule = new JavaFXThreadingRule();

此代码适用于 JavaFX 2 和 JavaFX 8。

关于junit - JavaFX 8 的基本 JUnit 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34105280/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com