設定單元測試
本節將舉例說明如何設定單元測試,藉此檢查應用程式是否如預期互動。
步驟 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 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();
傳送測試意見回饋至測試 DPC
名為「測試 DPC」的裝置政策控制器範例可接收應用程式意見回饋,並可供下載。
步驟 1:安裝 Test DPC
請前往 Play 商店安裝最新版本的Test DPC。接著,將測試 DPC 設為裝置管理員:
adb shell dpm set-device-owner com.afwsamples.testdpc/.DeviceAdminReceiver
步驟 2:啟用應用程式意見回饋通知
在 Test DPC 選單中,啟用「應用程式意見回饋通知」。
觸發設定了索引鍵應用程式狀態的事件。如果成功,測試的 DPC 會在通知中顯示意見回饋: