Тестирование разрешений на Jetpack ComposeAndroid

Форум для тех, кто программирует под Android
Anonymous
Тестирование разрешений на Jetpack Compose

Сообщение Anonymous »

Я использую Jetpack Compose для рендеринга пользовательского интерфейса своего приложения. В настоящее время я разрабатываю несколько тестов для библиотеки, но мне не удается найти подходящие способы проверки разрешений. В настоящее время я использую библиотеку разрешений аккомпаниатора для проверки разрешений. Однако похоже, что разрешения уже предоставлены при запуске теста, хотя в настоящее время я проверяю разрешение на определение местоположения, которое, насколько мне известно, на самом деле не должно быть предоставлено.
Как мне проверить, предоставлены ли разрешения, и как выполнять щелчки в диалоговом окне разрешений? Может быть, с чем-то вроде этого?

Код: Выделить всё

composeTestRule.onNodeWithText("While using the app").performClick()
Мне это кажется довольно грязным.
Примечание:
Я инициализирую composeTestRule, как показано в официальном руководстве. :

Код: Выделить всё

@get:Rule
val composeTestRule = createComposeRule()
Заранее благодарим за помощь, и я буду рад предоставить дополнительную информацию, если это необходимо.
Изменить 1:
Изменить 1:
Strong> Важно не забыть добавить разрешения в манифест. В моем случае я использую в своем приложении отдельный модуль для этой библиотеки, поэтому я забыл добавить запрашиваемые разрешения. Пример:
Редактирование 2:[/b] Инструкции, такие как

Код: Выделить всё

composeTestRule.onNodeWithText("Precise").performClick()
composeTestRule.onNodeWithText("While using the app").performClick()
совершенно не работает, поскольку диалоговое окно находится за пределами представления создания. Может быть, использовать сырой эспрессо?
Заключительные мысли: После тщательного расследования выяснилось, что это невозможно протестировать ни с помощью тестирования Jetpack Compose, ни с помощью Espresso. Такого рода тесты необходимо выполнять с помощью UiAutomator (официальная документация).

Подробнее здесь: https://stackoverflow.com/questions/723 ... ck-compose

Вернуться в «Android»