Заставить FEST ждать загрузки приложения - PullRequest
4 голосов
/ 10 января 2012

Я новичок в тестировании GUI на основе FEST.

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 не ожидает загрузки приложения.

Есть ли какие-либо методы, позволяющие отложить поиск элементов графического интерфейса?

Ответы [ 2 ]

4 голосов
/ 29 августа 2012
//do your clicks
fixture.robot.waitForIdle();//give the GUI time to update
//do your asserts

это приостановит ваш код, пока вашему графическому интерфейсу не останется ничего обновить.Преимущество Pause заключается в том, что вам не нужно ждать дольше, чем нужно, передав большой интервал времени.

3 голосов
/ 07 апреля 2012

Возможно, вы можете использовать метод паузы из org.fest.swing.timing.

Взгляните сюда http://fest.easytesting.org/swing/apidocs/org/fest/swing/timing/Pause.html

...