2015-06-17 8 views
6

Sto usando FEST per testare le mie finestre di dialogo Java e ho bisogno di verificare che venga creata una nuova finestra di dialogo modale.Utilizzo di WindowFinder per trovare una finestra di dialogo modale

@Before 
public void setUp() throws Exception { 
    TestFrame testFrame = GuiActionRunner.execute(new GuiQuery<TestFrame>() { 
     @Override 
     protected TestFrame executeInEDT() throws Throwable { 

      panel = new CustomPanel(); 
      return new TestFrame(panel); 
     } 
    }); 

    frameFixture = new FrameFixture(testFrame); 
    frameFixture.show(); 

    frameFixture.robot.waitForIdle(); 
} 

Nota: TestFrame è una classe di supporto che estende JFrame per l'utilizzo nei test di unità.

Nel mio test, faccio clic su un pulsante che fa apparire una finestra di dialogo modale. Sto cercando di trovare e verificare la finestra di dialogo è stato creato, ma tutti i miei tentativi non sono riuscito a trovare nulla:

WindowFinder.findDialog("Window Title")).using(robot); 

Dove robot =

  1. BasicRobot.robotWithCurrentAwtHierarchy();
  2. BasicRobot.robotWithNewAwtHierarchy();
  3. frameFixture.robot (frameFixture => JFrame)

ho provato anche specificare l'ambito di ricerca del robot:

robot.settings().componentLookupScope(ComponentLookupScope.ALL); 

Ci sono un sacco di esempi FEST online che effettuare una chiamata a robot() ma non riesco a scoprire come o cosa dovrebbe essere questa funzione robot.

Perché non riesco a trovare la finestra di dialogo popup appena creata?

+0

È possibile includere un esempio completo in modo da poter vedere se una di queste soluzioni funzionerà? Ho trovato un esempio che crea il robot in questo modo: robot = BasicRobot.robotWithCurrentAwtHierarchy(); robot.settings(). DelayBetweenEvents (50); E un altro che cerca la finestra in questo modo: WindowFinder.findDialog (MyDialog.class) .withTimeout (10000) .using (robot); Inoltre, vedere questo post che spiega che è necessario configurare il robot prima di creare un'istanza di dialogo o finestra di dialogo. http://stackoverflow.com/a/4965444/1324406 – Amber

risposta

0

Recentemente, Sono anche utilizzando FEST a fare il test.

Quando si lavora nella stessa situazione che uso il seguente metodo per simulare l'azione "ottenere questa finestra/finestra di dialogo"

private DialogFixture blablawindow; 
... 
blablawindow = WindowFinder.findDialog("XXX").using(robot()); 
blablawindow.button("button1").click(); 

Come io sono nuovo di FEST, quindi per me, qualcosa bisogna stare attenti:

XXX non è il testo effettivo che viene visualizzato sul interfaccia utente, è necessario controllare il codice sorgente per vedere il nome della finestra/finestra di dialogo: assomiglia a questo setName("actual name of window"); o qualsiasi oscillazione elemento private javax.swing.JButton button1;