Configurare i test delle unità
Questa sezione fornisce esempi di come configurare i test delle unità per controllare che la tua app interagisca con stati dell'app con chiavi come previsto.
Passaggio 1: configura i tuoi corsi in modo che accettino KeyedAppStatesReporter
come parametro
Anziché chiamare direttamente create()
, modifica i tuoi corsi per accettare
KeyedAppStatesReporter
come parametro come nell'esempio BatteryManager
seguente:
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); } }
Poi usa KeyedAppStatesReporter.create
per far passare un'istanza
ovunque sia creato BatteryManager
.
Passaggio 2: aggiungi la libreria di test del feedback aziendale al file build.gradle
Aggiungi la seguente dipendenza al parametro
File build.gradle
:
dependencies { testImplementation 'androidx.enterprise:enterprise-feedback-testing:1.0.0' }
Passaggio 3: crea un FakeKeyedAppStatesReporter
e passalo al corso
Kotlin
val reporter = FakeKeyedAppStatesReporter(); val batteryManager = BatteryManager(reporter);
Java
FakeKeyedAppStatesReporter reporter = new FakeKeyedAppStatesReporter(); BatteryManager batteryManager = new BatteryManager(reporter);
Passaggio 4: dichiara le interazioni con FakeKeyedAppStatesReporter
Ad esempio, per verificare che non sia stato impostato alcuno stato:
Kotlin
assertThat(reporter.keyedAppStates).isEmpty();
Java
assertThat(reporter.getKeyedAppStates()).isEmpty();
Oppure che è stato richiesto il caricamento di uno stato particolare:
Kotlin
assertThat(reporter.uploadedKeyedAppStatesByKey["battery"]).isNotNull()
Java
assertThat(reporter.getUploadedKeyedAppStatesByKey().get("battery")).isNotNull();
Invia feedback sul test al DPC di test
Un controller dei criteri dei dispositivi di esempio chiamato DPC di test, è in grado di ricevere feedback sull'app ed è disponibile per scaricare l'app.
Passaggio 1: installa il DPC di test
Installa la versione più recente di Test DPC dal Play Store. Quindi, imposta DPC di test come amministratore del dispositivo:
adb shell dpm set-device-owner com.afwsamples.testdpc/.DeviceAdminReceiver
Passaggio 2: attiva le notifiche di feedback sull'app
Nel menu del DPC di prova, attiva Notifiche di feedback sulle app.
Attiva un evento che imposta uno stato dell'app con chiavi. Se l'esito è positivo, il DPC di test mostrerà il feedback nelle notifiche: