【问题标题】:Test JavaFX ListView item selection测试 JavaFX ListView 项目选择
【发布时间】:2018-04-26 15:33:16
【问题描述】:

我想为仅包含 ListView 的控制器创建一个单元测试(使用 JUnit 5)。我要测试的用例是当一个项目被选择/点击时,正确的回调被调用。

在我的单元测试中,我正在执行以下操作:

myController.theListUnderTesting.selectionModel.select(i-th element)

但是selectedItemProperty 监听器从未被调用。这在正常启动和使用应用程序时显然没有问题。

我看到有一些库(例如 TestFX)有助于测试,但我不喜欢它,因为它会启动应用程序并模拟屏幕上的用户交互。

有没有办法在不必运行应用程序和模拟交互的情况下测试这种行为?

【问题讨论】:

    标签: unit-testing javafx javafx-8 junit5


    【解决方案1】:

    我最终做的是:

    Node nodeToClick = myController.getTheListUnderTesting().getChildrenUnmodifiable()[123];
    
                MouseEvent mouseEvent =
                        new MouseEvent(
                                MouseEvent.MOUSE_CLICKED,
                                0.0,
                                0.0,
                                0.0,
                                0.0, MouseButton.PRIMARY, 1, false, false, false, false, false, false, false, false, false, true,
                                new PickResult(nodeToClick, 0.0, 0.0)
                        );
    
                MouseEvent.fireEvent(nodeToClick, mouseEvent);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-29
      • 1970-01-01
      • 2014-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多