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

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

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

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

Спасибо

Ответы на вопрос(1)

Решение Вопроса

Fragments только если они отображаются. И это требует их отображенияActivity.

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

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

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

Не использоватьFragments. Activities легче проверить. Вы можете проверить каждыйActivity сам по себе. В большинстве случаевFragments не предлагать никаких преимуществ передActivities. Fragments просто усложнить реализацию и тестирование.Включить вашFragmentActivity чтобы прямо показать определенныйFragment когда это будет создано. Например. предоставляя специальное намерение дополнительно к вашемуFragmentActivity, Но это добавит тестовый код в ваше приложение, что, как правило, не является хорошим решением.
 Drocchio19 дек. 2018 г., 16:33
Я предлагаю вам удалить (если вам нравится) предложение фрагмента или указать, какое ваше любимое предпочтение, чтобы пользователи могли проголосовать за вас как «Я только что сделал, и в будущем юниоры, читающие ваш ответ, поймут, что первая часть вашего ответ был совершенно действительным
 Pawan13 июн. 2018 г., 16:10
Я извиняюсь, но«Не используя фрагменты»не является решением. Фрагменты чертовски многоразового использования и быстрее по сравнению с деятельностью.
 Amit Kaushik22 июл. 2017 г., 10:20
Не использовать фрагменты ???
 Brais Gabin16 авг. 2017 г., 11:26
FragmentTestRule это реализация связанного ответа.
 thaussma13 июн. 2018 г., 17:35
Да, они полезны. И это всего лишь предложение. Если вы не знаете, как их тестировать, возможно, попробуйте тестируемый подход ... Я знаю, как их протестировать, и я тоже их использую.
 OldSchool466419 сент. 2017 г., 23:34
Фрагменты загружаются быстрее, чем действия (они даже могут быть предварительно загружены в память), они допускают модульность и повторное использование компонентов и не требуют отображения в полноэкранном режиме (их можно размещать в макете, как и в любом другом представлении) , Фрагменты очень популярны, потому что они значительно улучшают активность. Сказать, что фрагменты не дают никаких преимуществ, невероятно неточно, а польза от их использования намного превышает трудность тестирования.

Ваш ответ на вопрос