Как запустить код в потоке пользовательского интерфейса в тесте Android JUnit без Activity?
У меня есть компонент базы данных, который использует AsyncTask
для извлечения данных. После использования в приложении он всегда будет вызываться из потока пользовательского интерфейса, но как это сделать в тестах JUnit без создания экземпляра Activity
(у меня просто нет активности, и я не должен создавать его только для тестирования)?
runOnUiThread()
- это метод активности, поэтому он не является вариантом. Есть ли способ имитировать поток пользовательского интерфейса, получая его из тестовой библиотеки Android или используя MockUiThread?
Ответы
Ответ 1
Android.OS.Handler должен иметь возможность обновлять ui.
Чтобы использовать обработчик, вы должны подклассифицировать его и переопределить handleMessage() для обработки сообщений
Обновление:
Я использую monodroid, поэтому я не знаю, полностью ли это переводится, но
Возможно, вы сможете использовать
new Handler(context.getMainLooper()).post(runnable);