2015-10-29 3 views
2

От here теперь мы знаем, что robolectric не имеет теневого объекта, но мы можем создать собственный теневой объект для snackbar.It's ashame у них есть один для тоста, но не для закуски.android snackbar - как протестировать с roboelectric

Я показываю закусочную в моем коде, когда нет сетевого подключения. Я хотел бы знать, как я могу написать единичный тест (с robolectric в качестве тестового бегуна), который может проверить, что snackbar отображается, когда нет сетевого подключения.

Его немного сложно, потому что закусочная не находится в xml. Поэтому, когда я объявляю свой контроллер активности, в это время у него нет закусочной.

Вы знаете, как проверить тост мы имеем ShadowToast.getTextOfLatestToast() я хочу один для закусочной

им в настоящее время с помощью org.robolectric: robolectric: 3,0-RC2 и не видят ShadowSnackbar.class доступны.

ответ

2

В блоге объясняется, как добавить класс ShadowToast для включения тестирования.

  1. Добавить ShadowSnackbar в тестовые источники;
  2. Добавьте класс Snackbar в качестве инструментального класса в свой пользовательский тест-драйв Gradle;
  3. Добавьте ShadowSnackbar в качестве тени в свой тест;

В коде приложения вы будете звонить в Закусочную, если нет доступа к Интернету. Из-за конфигурации (например, перехвата) класса Snackbar как Instrumented будет использоваться Shadow-вариант класса. В этот момент вы сможете оценить результат.

+0

Я считаю, что это не часть robolectric, это был еще один разработчик, объясняющий, как это можно сделать, правильно? – j2emanue

+1

Действительно, он не является частью Robolectric, и, скорее всего, он не может быть включен, если, возможно, кто-то его вносит. Похоже, что на сегодняшний день Android и его библиотеки поддержки развиваются быстрее, чем Robolectric. И это «другой разработчик», это я. – Kvandermast