gpt4 book ai didi

java - 如何使用test fx测试javafx代码

转载 作者:行者123 更新时间:2023-12-02 11:10:47 25 4
gpt4 key购买 nike

我们计划在 Test Fx 的帮助下测试我们的 java fx 场景构建器。为此下载了 testfx3.1.2 jar、hamcrest-core-1.3.jar、junit.jar、guava-18.0 jar 文件。

请查看下面的代码,并请给我一些指示,我如何启动我的 GUI。我的 Controller 类也有一些附加方法。

public class GuiMainController extends Application implements Initializable{
@Override
public void start(final Stage primaryStage) throws Exception {

primaryStage.setTitle("Plugins");
primaryStage.setResizable(false);
primaryStage.setScene((Scene) FXMLLoader.load(getClass().getResource(
"/../GuiMain.fxml")));

primaryStage.show();
}
/**
* to run this class locally.
* @param args List of Command line arguments
*/
public static void main(final String[] args) {
launch(args);
}
}

我的测试类如下。

@Category(TestFX.class)
public class GuiMainTest extends GuiTest {
@Override
protected Parent getRootNode() {
Parent parent = null;
try {
parent = (Parent)FXMLLoader.load(
getClass().getResource("/../GuiMain.fxml"));
return parent;
} catch (IOException ex) {
}
return parent;
}
@Test
public void setBothnamesAndCheckEnabledSearchButton() {
try{
ComboBox<String> listPrj = find("#lstProject");//given combobox id.
listPrj.setValue("ABC");
if(listPrj.getValue().equals("ABC")) {
System.out.println("success");
}
}catch(NoNodesFoundException ne){
System.out.println("node is not available" + ne.getMessage());
} }
}

它给了我异常(exception):

java.lang.ClassCastException: javafx.scene.Scene cannot be cast to javafx.scene.Parent
at com.trwautomotive.das.rhapsody.plugins.GuiMainTest.getRootNode(GuiMainTest.java:26)
at org.loadui.testfx.GuiTest$1.run(GuiTest.java:130)
at org.loadui.testfx.utils.FXTestUtils$4.call(FXTestUtils.java:172)
at org.loadui.testfx.utils.FXTestUtils$4.call(FXTestUtils.java:168)
at org.loadui.testfx.utils.FXTestUtils$3.run(FXTestUtils.java:130)
at com.sun.javafx.application.PlatformImpl$4$1.run(PlatformImpl.java:182)
at com.sun.javafx.application.PlatformImpl$4$1.run(PlatformImpl.java:179)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl$4.run(PlatformImpl.java:179)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:76)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.access$100(WinApplication.java:17)
at com.sun.glass.ui.win.WinApplication$3$1.run(WinApplication.java:67)
at java.lang.Thread.run(Unknown Source)
node is not availableNo nodes matched '#lstProject'.

最佳答案

改变

primaryStage.setScene((Scene) FXMLLoader.load(getClass().getResource(
"/../GuiMain.fxml")));

primaryStage.setScene(new Scene( FXMLLoader.load(getClass().getResource("/../GuiMain.fxml"))));

关于java - 如何使用test fx测试javafx代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33754568/

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