测试应用反馈

更新应用以支持以键控应用状态的形式发送反馈后,您可以按照本页中的指南设置单元测试并向测试设备政策控制器 (DPC) 发送测试反馈。

设置单元测试

本部分举例说明了如何设置单元测试,以检查您的应用是否按预期与键控应用状态交互。

第 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 Collection states = 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 的菜单中,启用应用反馈通知

启用通知

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

已显示反馈