我正在使用FEST测试我的Java对话框,并且需要测试是否创建了新的模式对话框。

@Before
public void setUp() throws Exception {
    TestFrame testFrame = GuiActionRunner.execute(new GuiQuery<TestFrame>() {
        @Override
        protected TestFrame executeInEDT() throws Throwable {

            panel = new CustomPanel();
            return new TestFrame(panel);
        }
    });

    frameFixture = new FrameFixture(testFrame);
    frameFixture.show();

    frameFixture.robot.waitForIdle();
}

注意:TestFrame是一个帮助程序类,它扩展了JFrame以用于单元测试。

在测试中,我单击一个按钮,该按钮将显示一个模式对话框。我正在尝试查找并验证对话框是否已创建,但是我所有的尝试都找不到任何东西:
WindowFinder.findDialog("Window Title")).using(robot);

机器人=
  • BasicRobot.robotWithCurrentAwtHierarchy();
  • BasicRobot.robotWithNewAwtHierarchy();
  • frameFixture.robot(frameFixture => JFrame)

  • 我也尝试过指定机器人的查找范围:
    robot.settings().componentLookupScope(ComponentLookupScope.ALL);
    

    在线上有很多FEST示例可以调用robot(),但我无法确定此机器人功能应该是什么或应该是什么。

    为什么我找不到新创建的弹出对话框?

    最佳答案

    尝试添加查找时间:

    WindowFinder.findDialog(MyDialog.class).withTimeout(10000).using(robot);
    

    有关更多信息:http://fest.googlecode.com/svn-history/r458/trunk/fest/fest-swing/javadocs/org/fest/swing/fixture/util/WindowFinder.html

    08-16 22:54