2012-01-10 2 views
4

Je suis nouveau dans le test d'interface graphique basée sur FEST. MyFrame est la classe racine pour mon application.FEST pour attendre le chargement de l'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 
     } 

Quand je lance le cas de test,

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

La méthode ci-dessus n'imprime pas la chaîne réelle présente dans l'étiquette.

Je pense que l'API FEST n'attend pas le chargement de l'application.

Existe-t-il des méthodes disponibles pour reporter la recherche d'élément GUI? Peut-être que vous pouvez utiliser la méthode de pause de org.fest.swing.timing

+0

Regardez ma réponse ici http://stackoverflow.com/questions/8957334/faire-des-composants-components-conseils-mechanisme-attendre-pour-un-composant/11738497#11738497 – Whimusical

Répondre

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

se met en pause votre code jusqu'à ce que votre GUI n'a plus rien à mettre à jour. L'avantage de Pause est que vous n'avez pas besoin d'attendre plus longtemps que nécessaire pour passer un intervalle de temps important.

Questions connexes