Я пишу тесты пользовательского интерфейса для своего приложения, используя Espresso. Я хотел бы проверить, что, если я нажму кнопку «Назад», когда выполняется запрос на сервер, приложение должно оставаться там, где оно есть.Кнопка проверки тестовой кнопки Espresso во время работы AsyncTask
Возможно, это невозможно из-за архитектуры эспрессо, которая заставляет выполнение тестов ждать, если была запущена какая-либо фоновая операция (например, AsyncTask).
Итак, как я могу проверить следующий сценарий:
- нажать на кнопку, которая запускает в
- тест AsyncTask, что в то время как задача выполняется, и я нажимаю кнопку назад, приложение остается там?
Возможно ли это?
спасибо
Здравствуйте, я автоматизируя этот тест, так что они не будут выбежали вручную, и поэтому я не могу нажать вручную на кнопке. И Calling Activity.onBackPressed() после запуска задачи приведет к другому поведению, потому что оно будет выполнено после задачи, а когда задача будет закончена, поведение кнопки обратной связи отличается от – Apperside
. Я знаю, что тесты автоматизированы и вы не можете щелкнуть по нему самостоятельно. Когда вы используете код из моего ответа, 'onBackPressed()' будет выполняться при запуске 'AsyncTask'. Но если задача завершается мгновенно или вскоре после ее запуска, возможно, что после задачи вызывается 'onBackPressed()'. Вы попробовали мое решение? Что точно не работает? – thaussma
Я не пробовал это, но потому, что думал, что когда первая инструкция вашего примера будет выполнена, выполнение тестов прекратится и продолжит работу только тогда, когда задача будет завершена. В любом случае, я дам ему попробовать – Apperside