设置单元测试
本部分提供了有关如何设置单元测试以检查您的应用是否会与 键控的应用状态符合预期。
第 1 步:设置类以接受 KeyedAppStatesReporter
作为参数
请将类修改为接受,而不是直接调用 create()
将 KeyedAppStatesReporter
作为参数,如示例 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
安装最新版本的 Test DPC 。接下来,将 Test DPC 设置为设备的管理员:
adb shell dpm set-device-owner com.afwsamples.testdpc/.DeviceAdminReceiver
第 2 步:启用应用反馈通知
在 Test DPC 的菜单中,启用应用反馈通知。
触发设置键控应用状态的事件。如果成功,Test DPC 将显示 通知中的反馈: