测试应用反馈

在将您的应用更新为支持以键控应用状态形式发送反馈后,您可以使用本页上的指南来设置单元测试并将测试反馈发送到测试设备策略控制器 (DPC)。

设置单元测试

本部分提供有关如何设置单元测试以检查您的应用是否按预期与键控应用状态交互的示例。

步骤 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 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();

将测试反馈发送到测试 DPC

一个名为测试 DPC 的示例 设备策略控制器 能够接收应用反馈,并且可以下载。

步骤 1:安装测试 DPC

从 Play 商店安装最新版本的 测试 DPC。接下来,将测试 DPC 设置为设备的管理员

adb shell dpm set-device-owner com.afwsamples.testdpc/.DeviceAdminReceiver

步骤 2:启用应用反馈通知

在测试 DPC 的菜单中,启用 **应用反馈通知**。

enable notifications

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

feedback displayed