Android Espresso: как я могу протестировать определенный фрагмент при выполнении одного действия для нескольких фрагментарных архитектур

Мое приложение состоит из одного Activity для многих Fragments .

Я хочу использовать Espresso для проверки пользовательского интерфейса Fragments . Однако я столкнулся с проблемой.

Как проверить Fragment который не добавлен в Activity в onCreate . Все примеры, которые я видел с помощью Fragments включают Fragment , добавленный в onCreate . Итак, как я могу сказать Espresso перейти к определенному Fragment и начать оттуда?

благодаря

Solutions Collecting From Web of "Android Espresso: как я могу протестировать определенный фрагмент при выполнении одного действия для нескольких фрагментарных архитектур"

Espresso может тестировать Fragments только в том случае, если они отображаются. И это требует, чтобы они отображались в Activity .

С вашей текущей настройкой вам придется использовать Espresso, чтобы click() своему пути (например, пользователю) до Fragment вы хотите протестировать.

В одном из моих проектов у меня есть ViewPager который показывает Fragments . Для этих Fragments я использую пользовательский FragmentTestRule для проверки их по отдельности. Я могу начать каждый Fragment напрямую и использовать Espresso для его проверки. См. Этот ответ .

Вы также можете:

  • Не используйте Fragments . Activities легче тестировать. Вы можете протестировать каждую Activity самостоятельно. В большинстве случаев Fragments не имеют преимуществ перед Activities . Fragments просто затрудняют реализацию и тестирование.
  • Включите функцию FragmentActivity для непосредственного отображения определенного Fragment при его создании. Например, добавив специальное дополнение к вашему FragmentActivity . Но это добавит тестовый код в ваше приложение, что, как правило, не является хорошим решением.