使FEST等待应用程序加载

时间:2012-01-10 12:44:01

标签: java gui-testing fest

我是基于FEST的GUI测试的新手。

MyFrame是我的应用程序的根类。

 @Before    
      public void onSetUp() {

        MyFrame frame = GuiActionRunner.execute(new GuiQuery<MyFrame>() {
            protected MyFrame executeInEDT() {
              return new MyFrame();  
            }
        });

        frame2 = new FrameFixture(robot(), frame);

        frame2.show(); // shows the frame to test
      }

当我运行测试用例时,

@Test public void testGui()
      {
          String rs = frame2.label("hl").text().toString();
                  assertTrue(rs.equals("First")); 
      }

上述方法不会打印标签中的实际字符串。

我认为FEST API不会等待应用程序加载。

是否有任何方法可以推迟GUI元素查找?

2 个答案:

答案 0 :(得分:4)

//do your clicks
fixture.robot.waitForIdle();//give the GUI time to update
//do your asserts

这将暂停您的代码,直到您的GUI没有任何内容可以更新。 Pause的优势在于,您不必通过传递大的时间间隔等待所需的时间。

答案 1 :(得分:3)

也许你可以使用org.fest.swing.timing中的pause方法。

在这里查看http://fest.easytesting.org/swing/apidocs/org/fest/swing/timing/Pause.html