単体テストをセットアップする
このセクションでは、アプリがキー付きのアプリの状態に想定どおりに動作することを確認する単体テストのセットアップ方法の例を示します。
ステップ 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 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 というサンプルの 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 の通知にフィードバックが表示されます。