Hilt Container Activity для тестов

Feb 20 2023
Давайте за 2 минуты посмотрим, зачем нужна активность Hilt для тестов и как ее создать/использовать? Hilt упрощает тестирование. Вам не нужно всегда создавать отдельную активность для тестирования, если это действительно не требуется. Возможные сценарии для тестовой активности Существуют различные ситуации, когда вы хотите создать отдельную активность для тестирования e.

Давайте за 2 минуты посмотрим, зачем нужна активность Hilt для тестов и как ее создать/использовать?

Фото Эрда Эстремера на Unsplash

Hilt упрощает тестирование. Вам не нужно всегда создавать отдельную активность для тестирования, если это действительно не требуется.

Возможные сценарии тестовой деятельности

Существуют разные ситуации, когда вы хотите создать отдельную активность для тестирования, например, по следующим причинам, но не ограничиваясь ими.

  • Вы хотите протестировать Composableно ваше приложение Activityможет иметь другие Composables, которые вы не хотите создавать или тестировать, например, у вас есть макет нижнего или ящика в качестве родительского контейнера, Activityно вы хотите протестировать определенныйComposable
  • Обычно для тестирования Fragmentвы сначала запускаете Activityконтейнер Fragment. поэтому, если у контейнера Fragmentесть аннотация @AndroidEntryPoint, контейнер Activity также должен быть аннотирован. @AndroidEntryPoint. Если вы просто используете ActivityScenario, это не происходит автоматически. Вот почему вам нужно создать контейнер активности
  • Ваш Composableзависит от a ViewModelи ViewModelаннотирован, @HiltViewModel и в вашем тесте вы хотите получить viewModel через hiltViewModel()зависимости разрешения API.

Пойдем шаг за шагом

  • Создать debugпапку вapp/main/src
  • Создайте папку с именем kotlinв этой debugпапке
  • Создайте пакет с именем вашего пакета приложения, напримерcom.name1.name2
  • Теперь создайте активность внутри этой папки HiltTestActivityи аннотируйте ее с помощью@AndroidEntryPoint
  • Вам нужно добавить это действие в Android Manifestс помощью. exported=falseДля этого вам нужно добавить следующую зависимость
  • debugImplementation "androidx.compose.ui:ui-test-manifest:$compose_version"
    

Как использовать в тесте?

Сначала нужно создать тестовое правило, HiltTestActivityа затем установить содержимое активности Composable, которое вы хотите протестировать.

Теперь setupтест, как показано ниже.

Теперь вы можете использовать composeTestRuleдля выполнения теста на вашемComposable

Вот и все!

Скачать проект можно отсюда

Другие истории из тестовой серии