Настройка модульных тестов
В этом разделе приведены примеры настройки модульных тестов, чтобы проверить, что ваше приложение взаимодействует с ключевыми состояниями приложения, как ожидалось.
Шаг 1. Настройте свои классы так, чтобы они принимали KeyedAppStatesReporter
в качестве параметра.
Вместо прямого вызова метода create()
измените свои классы, чтобы они принимали KeyedAppStatesReporter
в качестве параметра, как в примере класса BatteryManager
ниже: Котлин
class BatteryManager(val reporter:KeyedAppStatesReporter) { fun lowBattery(battery:Int) { reporter.setStatesImmediate( hashSetOf(KeyedAppState.builder() .setKey("battery") .setSeverity(KeyedAppState.SEVERITY_INFO) .setMessage("Battery is low") .setData(battery.toString()) .build())) } }
Ява
public class BatteryManager { private final KeyedAppStatesReporter reporter; public BatteryManager(KeyedAppStatesReporter reporter) { this.reporter = reporter; } public void lowBattery(int battery) { final Collectionstates = new HashSet<>(); states.add(KeyedAppState.builder() .setKey("battery") .setSeverity(KeyedAppState.SEVERITY_INFO) .setMessage("Battery is low") .setData(Integer.toString(battery)) .build(); reporter.setStatesImmediate(states); } }
Затем используйте KeyedAppStatesReporter.create
, чтобы передать экземпляр везде, где создается BatteryManager
.
Шаг 2. Добавьте библиотеку тестирования обратной связи предприятия в файл build.gradle
.
Добавьте следующую зависимость в файл build.gradle
вашего приложения:
dependencies { testImplementation 'androidx.enterprise:enterprise-feedback-testing:1.0.0' }
Шаг 3. Создайте FakeKeyedAppStatesReporter
и передайте его в свой класс.
Котлин
val reporter = FakeKeyedAppStatesReporter(); val batteryManager = BatteryManager(reporter);
Ява
FakeKeyedAppStatesReporter reporter = new FakeKeyedAppStatesReporter(); BatteryManager batteryManager = new BatteryManager(reporter);
Шаг 4. Подтвердите взаимодействие с FakeKeyedAppStatesReporter
Например, чтобы проверить, что состояния не установлены:
Котлин
assertThat(reporter.keyedAppStates).isEmpty();
Ява
assertThat(reporter.getKeyedAppStates()).isEmpty();
Или что определенное состояние было запрошено для загрузки:
Котлин
assertThat(reporter.uploadedKeyedAppStatesByKey["battery"]).isNotNull()
Ява
assertThat(reporter.getUploadedKeyedAppStatesByKey().get("battery")).isNotNull();
Отправить отзыв о тестировании в тестовый ЦОД
Пример контроллера политики устройства , называемый Test DPC, способен получать отзывы приложений и доступен для скачивания.
Шаг 1. Установите тестовый ЦОД
Установите последнюю версию Test DPC из Play Store. Далее назначаем Test DPC администратором устройства:
adb shell dpm set-device-owner com.afwsamples.testdpc/.DeviceAdminReceiver
Шаг 2. Включите уведомления об отзывах приложений
В меню Test DPC включите уведомления об отзывах приложений .
Запустите событие, которое устанавливает состояние приложения с ключом. В случае успеха Test DPC отобразит отзыв в уведомлениях: