Configurar testes de unidade
Esta seção fornece exemplos de como configurar testes de unidade para verificar se o app interage com eles os estados do app com chave como esperado.
Etapa 1: configurar suas classes para aceitar KeyedAppStatesReporter
como um parâmetro
Em vez de chamar create()
diretamente, modifique suas classes para aceitar
KeyedAppStatesReporter
como um parâmetro, como no exemplo BatteryManager
.
abaixo:
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); } }
Em seguida, use KeyedAppStatesReporter.create
para receber uma instância a ser transmitida
sempre que BatteryManager
for criado.
Etapa 2: adicionar a biblioteca de testes de feedback corporativo ao arquivo build.gradle
Adicione a seguinte dependência ao arquivo
Arquivo build.gradle
:
dependencies { testImplementation 'androidx.enterprise:enterprise-feedback-testing:1.0.0' }
Etapa 3: criar um FakeKeyedAppStatesReporter
e transmiti-lo para a classe
Kotlin
val reporter = FakeKeyedAppStatesReporter(); val batteryManager = BatteryManager(reporter);
Java
FakeKeyedAppStatesReporter reporter = new FakeKeyedAppStatesReporter(); BatteryManager batteryManager = new BatteryManager(reporter);
Etapa 4: declarar interações com FakeKeyedAppStatesReporter
Por exemplo, para verificar se nenhum estado foi definido:
Kotlin
assertThat(reporter.keyedAppStates).isEmpty();
Java
assertThat(reporter.getKeyedAppStates()).isEmpty();
Ou que o upload de um estado específico foi solicitado:
Kotlin
assertThat(reporter.uploadedKeyedAppStatesByKey["battery"]).isNotNull()
Java
assertThat(reporter.getUploadedKeyedAppStatesByKey().get("battery")).isNotNull();
Enviar feedback de teste para o DPC de teste
Um exemplo de controlador de política de dispositivo, chamado DPC de teste, é capaz de receber feedback do app e está disponível para download.
Etapa 1: instalar o DPC de teste
Instale a versão mais recente do Test DPC na Play Store. Em seguida, defina o DPC de teste como o administrador do dispositivo:
adb shell dpm set-device-owner com.afwsamples.testdpc/.DeviceAdminReceiver
Etapa 2: ativar as notificações de feedback do app
No menu de teste do DPC, ative as Notificações de feedback do app.
Acionar um evento que define um estado do app com chave. Se bem-sucedido, o DPC de teste vai aparecer o feedback nas notificações: