测试应用反馈

更新应用以支持以键控应用状态的形式发送反馈后,您可以使用 此页面上的指南介绍了如何设置单元测试并向测试设备政策发送测试反馈 控制器 (DPC)。

设置单元测试

本部分提供了有关如何设置单元测试以检查您的应用是否会与 键控的应用状态符合预期。

第 1 步:设置类以接受 KeyedAppStatesReporter 作为参数

请将类修改为接受,而不是直接调用 create()KeyedAppStatesReporter 作为参数,如示例 BatteryManager 中所示 类:
KotlinJava
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()))
 
}
}

public class BatteryManager {
   
private final KeyedAppStatesReporter reporter;
   
public BatteryManager(KeyedAppStatesReporter reporter) {
       
this.reporter = reporter;
   
}

   
public void lowBattery(int battery) {
       
final Collection

接下来,使用 KeyedAppStatesReporter.create 获取要传递的实例 无论 BatteryManager 的创建位置是哪个。

第 2 步:将企业反馈测试库添加到 build.gradle 文件中

将以下依赖项添加到应用的 build.gradle 文件:

dependencies {
    testImplementation 'androidx.enterprise:enterprise-feedback-testing:1.0.0'
}

第 3 步:创建 FakeKeyedAppStatesReporter 并将其传入您的类

KotlinJava
val reporter = FakeKeyedAppStatesReporter();
val batteryManager = BatteryManager(reporter);
FakeKeyedAppStatesReporter reporter = new FakeKeyedAppStatesReporter();
BatteryManager batteryManager = new BatteryManager(reporter);

第 4 步:断言与 FakeKeyedAppStatesReporter 的互动

例如,如需检查是否未设置任何状态,请使用以下命令:

KotlinJava
assertThat(reporter.keyedAppStates).isEmpty();
assertThat(reporter.getKeyedAppStates()).isEmpty();

或特定状态已请求上传:

KotlinJava
assertThat(reporter.uploadedKeyedAppStatesByKey["battery"]).isNotNull()
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 将显示 通知中的反馈:

已显示反馈