设置单元测试
本部分提供了如何设置单元测试以检查您的应用是否按预期与键控应用状态交互的示例。
第 1 步:设置您的类以接受 KeyedAppStatesReporter
作为参数
修改您的类以接受 KeyedAppStatesReporter
作为参数,而不是直接调用 create()
,示例如下方的 BatteryManager
类所示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); } }
接下来,使用 KeyedAppStatesReporter.create
获取一个实例,以便在创建 BatteryManager
的任何地方传入。
第 2 步:将企业反馈测试库添加到您的 build.gradle
文件中
将以下依赖项添加到您应用的 build.gradle
文件中
dependencies { testImplementation 'androidx.enterprise:enterprise-feedback-testing:1.0.0' }
第 3 步:创建一个 FakeKeyedAppStatesReporter
并将其传入您的类中
Kotlin
val reporter = FakeKeyedAppStatesReporter(); val batteryManager = BatteryManager(reporter);
Java
FakeKeyedAppStatesReporter reporter = new FakeKeyedAppStatesReporter(); BatteryManager batteryManager = new BatteryManager(reporter);
第 4 步:断言与 FakeKeyedAppStatesReporter
的交互
例如,检查是否未设置任何状态
Kotlin
assertThat(reporter.keyedAppStates).isEmpty();
Java
assertThat(reporter.getKeyedAppStates()).isEmpty();
或已请求上传特定状态
Kotlin
assertThat(reporter.uploadedKeyedAppStatesByKey["battery"]).isNotNull()
Java
assertThat(reporter.getUploadedKeyedAppStatesByKey().get("battery")).isNotNull();
向测试 DPC 发送测试反馈
一个名为 Test DPC 的示例设备政策控制器能够接收应用反馈,并可供下载。
第 1 步:安装测试 DPC
从 Play 商店安装最新版本的测试 DPC。接下来,将测试 DPC 设置为设备的管理员
adb shell dpm set-device-owner com.afwsamples.testdpc/.DeviceAdminReceiver
第 2 步:启用应用反馈通知
在测试 DPC 的菜单中,启用应用反馈通知。

触发设置键控应用状态的事件。如果成功,测试 DPC 将在通知中显示反馈
