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.
![ativar notificações](https://developer.android.google.cn/static/images/work/test-dpc-screenshot.png?authuser=002&hl=pt-br)
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:
![feedback exibido](https://developer.android.google.cn/static/images/work/feedback-notification.png?authuser=002&hl=pt-br)