При написании теста модуля Robolectric я заметил, что мой getVisibility()
вызов был вызван 0 (VISIBLE) после вызова fab.hide()
, поэтому я предположил, что это связано с анимацией и протестировать ее, добавлено с задержкой проверки. Удивительно, но он также вернулся ВИДИМО. На самом устройстве он работает как ожидалось и возвращает правильные значения.Проверка видимости Android FAB всегда возвращает VISIBLE из тестового корпуса Robolectric
EDIT: просто для уточнения Я использую FAB из библиотеки поддержки дизайна.
Мой тестовый код очень прост:
fab.performClick();
ShadowLooper.runUiThreadTasksIncludingDelayedTasks();
assertThat(fab.isShown()).isFalse();
Код тестируемой:
mActionBunnot.hide();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
boolean shown = mActionBunnot.isShown();
Log.d(TAG,""+shown);
}
},2000);
При запуске через Robolectric как здесь, так и в тесте, isShown
возвращает true
Если вы прокомментируете свой обработчик, вы получите 'isShown()' false в тесте? –
Нет, это всегда так. – vkislicins
Вы решили это? –