设置单元测试
本部分举例说明了如何设置单元测试,以检查您的应用是否按预期与键控应用状态交互。
第 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();
向 Test DPC 发送测试反馈
一个名为 Test DPC 的示例设备政策控制器能够接收应用反馈,可供下载。
第 1 步:安装 Test DPC
从 Play 商店安装最新版本的 Test DPC。接下来,将 Test DPC 设为设备管理员:
adb shell dpm set-device-owner com.afwsamples.testdpc/.DeviceAdminReceiver
第 2 步:启用应用反馈通知
在 Test DPC 的菜单中,启用应用反馈通知。
![启用通知](https://developer.android.google.cn/static/images/work/test-dpc-screenshot.png?authuser=3&hl=ru)
触发用于设置键控应用状态的事件。如果测试成功,Test DPC 将在通知中显示反馈:
![已显示反馈](https://developer.android.google.cn/static/images/work/feedback-notification.png?authuser=3&hl=ru)