2012-11-12 11 views
7

Oto moja metoda, działa dobrze i pokazuje okno dialogowe.Testowanie Androida: okno dialogowe. Sprawdź, czy to jest Show()

public void showDialog(){ 
    final Dialog dialog = new Dialog(this); 
    dialog.setContentView(R.layout.mylayout); 
    dialog.show(); 
} 

Mam projekt testowy i chciałbym przetestować, że okno dialogowe jest wyświetlane. Chciałbym zastosować metodę .isShowing(). Coś takiego ...

assertTrue(dialog.isShowing()); 

Ale nie wiem, jak dostać się do zmiennej dialogowej w moim teście.

Nie używam Robotium (nie jest to opcja dla mnie). Aktualnie używam ActivityUnitTestCase do przetestowania. Jeśli potrzebujesz więcej informacji, nie wahaj się zapytać.

EDIT

próbowałem użyć odpowiedź poniżej dokonując Dialog publiczny

public Dialog getDiag(){ 
    return dialog; 
} 

Stosując tę ​​odpowiedź: Mam nowy problem, gdy uruchamiam ShowDialog() w teście, łamie się, gdy trafi: dialog.show();

android.view.WindowManager $ BadTokenException: * Nie można dodać okno - token zerowej

Odpowiedz

5

stwierdzenie Dialog poza funkcją ShowDialog a następnie wdrożyć metodę, która zwraca tym oknie instancji.

public Dialog getDiag(){ 
    return dialog; 
} 

a następnie zrobić coś takiego

assertTrue(new YourClassName().getDialog().isShowing()); 
+0

Dziękuję ja zmieniłem metodę zwrotu Dialog, mogę to przynajmniej otworzyć okno dialogowe w moim teście. Ale nie mogę nazwać Dialog.show(), dlatego wziąłem to z mojej metody i wezwę program() po zwróceniu okna dialogowego (w działaniu). –

Powiązane problemy