Настройте модульное тестирование
В этом разделе приведены примеры настройки модульных тестов, которые позволяют проверить, правильно ли приложение взаимодействует с состояниями с ключом.
Шаг 1. Настройте классы так, чтобы они принимали KeyedAppStatesReporter в качестве параметра
Вместо того чтобы вызывать create() напрямую, измените классы так, чтобы они принимали KeyedAppStatesReporter в качестве параметра, как в примере класса BatteryManager ниже:
Kotlin
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())) } }
Java
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 и передайте его в класс
Kotlin
val reporter = FakeKeyedAppStatesReporter(); val batteryManager = BatteryManager(reporter);
Java
FakeKeyedAppStatesReporter reporter = new FakeKeyedAppStatesReporter(); BatteryManager batteryManager = new BatteryManager(reporter);
Шаг 4. Проверьте взаимодействия с FakeKeyedAppStatesReporter
Например, чтобы проверить, что штаты не заданы, выполните следующие действия:
Kotlin
assertThat(reporter.keyedAppStates).isEmpty();
Java
assertThat(reporter.getKeyedAppStates()).isEmpty();
или что запрашивается загрузка определенного состояния:
Kotlin
assertThat(reporter.uploadedKeyedAppStatesByKey["battery"]).isNotNull()
Java
assertThat(reporter.getUploadedKeyedAppStatesByKey().get("battery")).isNotNull();
Отправить тестовый отзыв в Test DPC
Вы можете скачать пример контроллера политик на устройствах (Test DPC), который может получать отзывы о приложениях.
Шаг 1. Установите Test DPC
Установите последнюю версию Test DPC из Google Play. Затем назначьте Test DPC администратором устройства:
adb shell dpm set-device-owner com.afwsamples.testdpc/.DeviceAdminReceiver
Шаг 2. Включите уведомления об отзывах о приложении
В меню Test DPC включите параметр App feedback notifications (Уведомления об отзывах о приложении).
Активируйте событие, которое задает состояние приложения с ключом. Если все пройдет успешно, Test DPC покажет отзыв в уведомлениях.