Einheitentests einrichten
In diesem Abschnitt finden Sie Beispiele für das Einrichten von Unittests, um zu prüfen, ob Ihre Anwendung wie erwartet mit Schlüssel-App-Status interagiert.
Schritt 1: Klassen so einrichten, dass sie KeyedAppStatesReporter
als Parameter akzeptieren
Anstatt create()
direkt aufzurufen, ändern Sie Ihre Klassen so, dass KeyedAppStatesReporter
als Parameter akzeptiert wird, wie im folgenden Beispiel der BatteryManager
-Klasse:
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); } }
Verwenden Sie als Nächstes KeyedAppStatesReporter.create
, um eine Instanz abzurufen, die dort bestanden wird, wo BatteryManager
erstellt wurde.
Schritt 2: Der build.gradle
-Datei die Bibliothek für Enterprise Feedback Testing hinzufügen
Fügen Sie der Datei build.gradle
Ihrer App die folgende Abhängigkeit hinzu:
dependencies { testImplementation 'androidx.enterprise:enterprise-feedback-testing:1.0.0' }
Schritt 3: FakeKeyedAppStatesReporter
erstellen und an den Kurs übergeben
Kotlin
val reporter = FakeKeyedAppStatesReporter(); val batteryManager = BatteryManager(reporter);
Java
FakeKeyedAppStatesReporter reporter = new FakeKeyedAppStatesReporter(); BatteryManager batteryManager = new BatteryManager(reporter);
Schritt 4: Interaktionen mit FakeKeyedAppStatesReporter
bestätigen
So können Sie beispielsweise prüfen, ob keine Status festgelegt wurden:
Kotlin
assertThat(reporter.keyedAppStates).isEmpty();
Java
assertThat(reporter.getKeyedAppStates()).isEmpty();
Oder dass der Upload eines bestimmten Bundesstaates angefordert wurde:
Kotlin
assertThat(reporter.uploadedKeyedAppStatesByKey["battery"]).isNotNull()
Java
assertThat(reporter.getUploadedKeyedAppStatesByKey().get("battery")).isNotNull();
Testfeedback an Test-DPC senden
Ein beispielhafter Device Policy Controller namens Test-DPC kann App-Feedback empfangen und ist zum Download verfügbar.
Schritt 1: Test-DPC installieren
Installiere die neueste Version von Test DPC aus dem Play Store. Legen Sie als Nächstes Test DPC als Administrator des Geräts fest:
adb shell dpm set-device-owner com.afwsamples.testdpc/.DeviceAdminReceiver
Schritt 2: Benachrichtigungen für App-Feedback aktivieren
Aktivieren Sie im Test-DPC-Menü die Option App-Feedback-Benachrichtigungen.
![Benachrichtigungen aktivieren](https://developer.android.com/static/images/work/test-dpc-screenshot.png?authuser=6&hl=de)
Ein Ereignis auslösen, das einen verschlüsselten App-Status festlegt. Wenn der Vorgang erfolgreich war, wird das Feedback von Test-DPC in Benachrichtigungen angezeigt:
![Feedback angezeigt](https://developer.android.com/static/images/work/feedback-notification.png?authuser=6&hl=de)