Configurar testes de unidade
Esta seção fornece exemplos de como configurar testes de unidade para verificar se o app interage com os estados do app codificado conforme o esperado.
Etapa 1: configurar suas classes para aceitar KeyedAppStatesReporter
como parâmetro
Em vez de chamar create()
diretamente, modifique suas classes para aceitar KeyedAppStatesReporter
como um parâmetro, como no exemplo da classe 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 que uma instância seja transmitida
onde BatteryManager
for criado.
Etapa 2: adicionar a biblioteca de testes de feedback da empresa ao arquivo build.gradle
Adicione a dependência abaixo ao arquivo
build.gradle
do seu app:
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 do 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 de Test DPC pela 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 "Testar DPC", ative a opção Notificações de feedback do app.
Acione um evento que defina um estado de app com chave. Se for bem-sucedido, o DPC de teste mostrará o feedback nas notificações: