Работа и кнопка на нем. Задача состоит в том, чтобы передать тест «белого ящика» для воздействия поведения Последствия активности «Кнопка CLICK -> Кнопка GONE -> Активность PAUSE -> Активность RESUME» в состоянии видимости кнопки.Синхронизация потока пользовательского интерфейса с отправленными состояниями просмотра, зависящими от событий рабочего потока?
Наивная реализация ведет к непоследовательным государственной деятельности и, следовательно, неправильных тестов выходов:
// worker thread
TouchUtils.clickView(this, mButton);
...
// ui thread
instrumentation.callActivityOnStop(mActivity);
instrumentation.callActivityOnResume(mActivity);
assertTrue(View.GONE == mButton.getVisibility());
Два Glympse подходы не В случае успешного:
1) Добавление сна для основного потока после TouchUtils.clickView()
исполнения, однако не полностью решить проблему, но создает дополнительную зависимость от продолжительности тайм-аута эмпирического UI.
2) Синхронизация событий прикосновения и последующее активность событий жизненного цикла вызова через onPostExecute()
от AsyncTask вызывает тесты на неудачу непредсказуемо.
Есть ли какое-нибудь каноническое или, по крайней мере, жизнеспособное решение для синхронизации рабочего-пользователя на общем или специально разработанном для платформы Android Test?