2015-06-17 4 views
6

Ich verwende FEST, um meine Java-Dialoge zu testen, und ich muss testen, dass ein neuer modaler Dialog erstellt wird.Verwenden von WindowFinder zum Suchen eines modalen Dialogfelds

Hinweis: TestFrame ist eine Hilfsklasse, die JFrame für die Verwendung in Komponententests erweitert.

In meinem Test klicke ich auf eine Schaltfläche, die einen modalen Dialog erscheinen lässt. Ich versuche, den Dialog zu finden und zu verifizieren, erstellt, aber alle meine Versuche sind nicht in der Lage, etwas zu finden:

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

Wo Roboter =

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

ich auch den Suchbereich des Roboters versucht haben, festgelegt wird:

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

Es gibt viele Beispiele FEST online, die einen Aufruf an robot() machen aber ich kann nicht herausfinden, wie oder was diese Roboterfunktion sein soll.

Warum kann ich meinen neu erstellten Popup-Dialog nicht finden?

+0

Ist es möglich, ein vollständiges Beispiel einzubeziehen, damit ich sehen kann, ob eine dieser Lösungen funktioniert? Ich habe ein Beispiel gefunden, das den Roboter so erzeugt: robot = BasicRobot.robotWithCurrentAwthHierarchy(); robot.settings(). DelayBetweenEvents (50); Und eine andere, die nach dem Fenster wie folgt sucht: WindowFinder.findDialog (MyDialog.class) .withTimeout (10000). Using (Roboter); Siehe auch diesen Beitrag, der erklärt, dass Sie Ihren Roboter einrichten müssen, bevor ein Rahmen oder Dialog instanziiert wird. http://stackoverflow.com/a/4965444/1324406 – Amber

Antwort

0

Vor kurzem bin ich mit FEST auch die Prüfung zu tun.

Wenn auf der gleichen Situation arbeiten ich die folgende Methode verwenden, um den „erhalten Sie dieses Fenster/Dialog“ Aktion

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

Wie ich bin neu in FEST, so für mich zu simulieren, vorsichtig zu sein, etwas brauchen:

XXX nicht der eigentliche Text ist, der auf UI angezeigt wird, müssen Sie den Quellcode überprüfen Sie den Namen des Fensters/Dialog zu sehen: sieht aus wie dieses setName("actual name of window"); oder eine Schaukel Element private javax.swing.JButton button1;