4

我是基于 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 元素查找?

4

2 回答 2

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

这将暂停您的代码,直到您的 GUI 没有任何需要更新的内容。这样做的好处Pause是,通过传递一个很大的时间间隔,您不必等待比您需要的时间更长的时间。

于 2012-08-29T19:39:52.617 回答
3

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

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

于 2012-04-07T10:51:05.590 回答