Я использую класс android.os.Handler для выполнения задач на фоне. Когда модуль тестирует их, я вызываю Looper.loop()
, чтобы тестовый поток ожидал, когда поток фоновой задачи выполнит свою задачу. Позже я вызываю Looper.myLooper().quit()
(также в тестовом потоке), чтобы позволить тестовому потоку выйти из loop
и возобновить логику тестирования.
Все отлично и денди, пока я не захочу написать несколько тестовых методов.
Проблема заключается в том, что Looper, похоже, не предназначен для разрешения выхода и перезапуска в одном потоке, поэтому я вынужден выполнять все мои тесты внутри одного тестового метода.
Я заглянул в исходный код Looper и не смог найти способ обойти его.
Есть ли другой способ проверить мой код Hander/Looper? Или, может быть, еще один удобный способ написать мой фоновый класс задач?