Переключение сети устройства Android во время выполнения инструментального теста

Удалось ли кому-нибудь переключить сеть устройства в середине инструментального теста? Я нашел несколько устаревших решений, которые больше не поддерживаются например, этот.

Кажется, я не могу найти какие-либо недавние ответы на эту проблему. Я уверен, что это обычный сценарий тестирования для многих приложений. Заранее спасибо!


person John A Qualls    schedule 15.10.2019    source источник
comment
Интересный. Я думаю, вы можете изменить SSID Wi-Fi, к которому устройство подключается программно как предлагается здесь. Тем не менее, не очень хорошо знаком с тем, как вы можете сделать это во время инструментального теста.   -  person Reaz Murshed    schedule 16.10.2019
comment
Спасибо за быстрый ответ! Хм, интересно, есть ли что-то, что я могу сделать с этой опцией. Я взгляну.   -  person John A Qualls    schedule 16.10.2019
comment
Вы можете структурировать свой тест, используя UIAutomator и openQuickSettings(), а затем переключив режим полета таким образом. Связанное чтение здесь. Это не совсем лучшее решение, но обычно у вас есть контроль над устройством/эмулятором, на котором вы запускаете свои тесты.   -  person Sandi    schedule 16.10.2019
comment
Это похоже именно то, что мне нужно. Я попробую и обновлю эту тему своими выводами. Спасибо!   -  person John A Qualls    schedule 16.10.2019


Ответы (1)


Хорошо, ниже приведено решение, которое я придумал для включения/отключения сети во время инструментального теста. Спасибо за ссылку на UiAutomator Sandi!

fun clickAirplaneMode(instrumentation: Instrumentation, targetContext: Context) {
    UiDevice.getInstance(instrumentation).run {
        targetContext.packageManager.getLaunchIntentForPackage("com.android.settings")?.let {intent ->
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)
            targetContext.startActivity(intent)
            findObject(UiSelector().textContains("Network")).clickAndWaitForNewWindow()
            findObject(UiSelector().textContains("Airplane")).click()
        }
    }
}
person John A Qualls    schedule 16.10.2019