Как мне справиться с закрытием диалогового окна, которое может появиться в любое время во время моего автоматического теста? - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь выполнить автоматический модульный тест с Android Espresso.

У меня есть диалоговое окно, которое вызывается событиями push-уведомлений, которые могут появиться в любой момент во время выполнения теста.Я хочу, чтобы модульный тест мог закрывать диалоговое окно в том случае, если он появляется без прерывания модульного теста, возможно ли это?

У меня есть код, который после запуска запускает диалоговое окно и закрывает его, если онприсутствует или продолжает модульное тестирование, если оно отсутствует.Я хочу сделать эту проверку в любое время, когда появится диалоговое окно, которое может быть в любое время, а не один раз после запуска.

Я пытаюсь найти способ сделать это, не добавляя проверкупосле каждой строки кода в модульном тесте.

Я пытался использовать handler.postDelayed, чтобы просто часто проверять, но это не сработало так, как я ожидал при запуске из модульного теста.

Ответы [ 2 ]

0 голосов
/ 02 июля 2019

Я согласен с комментарием, сделанным @CommonsWare. Тем не менее, в вашем случае вы можете рассмотреть вопрос о наличии флага, который говорит, находится ли приложение в режиме тестирования или нет. Следовательно, вы можете рассмотреть возможность использования переменной, подобной следующей.

public static boolean TESTING = true; 

Когда вы создаете производственную сборку, отключите режим тестирования, просто установив переменную как false.

Следовательно, прежде чем показывать AlertDialog, вы можете рассмотреть возможность проверки переменной и решить, появится ли у вас диалоговое окно или нет.

0 голосов
/ 02 июля 2019

Если вы используете Dialog, который реализует интерфейс DialogInterface, вы должны добавить onShowListener в диалоговое окно, прежде чем показывать

...