アプリのフィードバックをテストする

アプリのキー付きの状態によるフィードバック送信をサポートするようにアプリを更新したら、このページのガイダンスを使用して単体テストを設定し、テストの Device Policy Controller(DPC)にテスト フィードバックを送信できます。

単体テストをセットアップする

このセクションでは、アプリがキー付きのアプリの状態に想定どおりに動作することを確認する単体テストのセットアップ方法の例を示します。

ステップ 1: KeyedAppStatesReporter をパラメータとして受け入れるようにクラスを設定する

create() を直接呼び出すのではなく、BatteryManager クラスの例のように、パラメータとして KeyedAppStatesReporter を受け入れるようにクラスを変更します。

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 というサンプルの Device Policy Controller は、アプリのフィードバックを受信でき、ダウンロードできます。

ステップ 1: Test DPC をインストールする

Play ストアから最新バージョンの Test DPC をインストールします。次に、Test DPC をデバイスの管理者として設定します。

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

ステップ 2: アプリのフィードバック通知を有効にする

Test DPC のメニューで、[アプリのフィードバック通知] を有効にします。

通知を有効にする

キー付きのアプリの状態を設定するイベントをトリガーします。成功すると、Test DPC の通知にフィードバックが表示されます。

フィードバックを表示