Making FEST to wait for the application to load

2019-02-18 03:00发布

I am new to FEST based GUI Testing.

MyFrame is the root class for my application.

 @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
      }

When I run the test case,

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

The above method doesn't print the actual string present in the label.

I think the FEST API is not waiting for the application to load.

Is there any methods available to postpone the GUI element lookup ?

2条回答
三岁会撩人
2楼-- · 2019-02-18 03:26

Maybe you can use the pause method from org.fest.swing.timing.

Have a look here http://fest.easytesting.org/swing/apidocs/org/fest/swing/timing/Pause.html

查看更多
聊天终结者
3楼-- · 2019-02-18 03:36
//do your clicks
fixture.robot.waitForIdle();//give the GUI time to update
//do your asserts

this will pause your Code until your GUI has nothing left to update. The advantage to Pause is, that you do not have to wait longer than you need by passing a to large time interval.

查看更多
登录 后发表回答