2015-06-17 21 views
6

Używam FEST do testowania moich okien dialogowych Java i muszę przetestować tworzenie nowego modalnego okna dialogowego.Używanie WindowFindera do znalezienia modalnego okna dialogowego

@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(); 
} 

Uwaga: TestFrame to klasa pomocnicza, która rozszerza JFrame do użytku w testach jednostkowych.

W moim teście klikam przycisk, który powoduje wyświetlenie modalnego okna dialogowego. Staram się znaleźć i zweryfikować dialog jest tworzony, ale wszystkie moje próby nie są w stanie znaleźć niczego:

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

Gdzie robota =

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

Próbowałem również określenie zakresu odnośnika robota:

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

Istnieje wiele przykładów FEST online, które sprawiają, że wezwanie do robot() ale nie mogę się dowiedzieć, jak lub jaka powinna być ta funkcja robota.

Dlaczego nie mogę znaleźć mojego nowo utworzonego okna podręcznego?

+0

Czy można podać pełny przykład, aby sprawdzić, czy któreś z tych rozwiązań będzie działać? Znalazłem jeden przykład, który tworzy takiego robota: robot = BasicRobot.robotWithCurrentAwtHierarchy(); robot.settings(). DelayBetweenEvents (50); I jeszcze jeden, który szuka takiego okna: WindowFinder.findDialog (MyDialog.class) .withTimeout (10000) .using (robot); Zobacz także ten post wyjaśniający, że musisz skonfigurować robota przed utworzeniem dowolnej klatki lub okna dialogowego. http://stackoverflow.com/a/4965444/1324406 – Amber

Odpowiedz

0

Ostatnio używam również FEST zrobić badania.

Podczas pracy w tej samej sytuacji używam następujący sposób symulować akcję „dostać to okno/Dialog”

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

Ponieważ jestem nowy na FEST, więc dla mnie, coś trzeba uważać:

XXX nie jest rzeczywisty tekst, który jest pokazany na UI, trzeba sprawdzić kod źródłowy, aby zobaczyć nazwę okna/okna: wygląda to setName("actual name of window"); lub dowolnego wychylenia elementu private javax.swing.JButton button1;

Powiązane problemy