測試應用程式意見回饋

更新應用程式後,支援透過按鍵應用程式狀態傳送意見回饋,可以使用 請參閱本頁指南,瞭解如何設定單元測試,並將測試意見回饋傳送至測試裝置政策 控制器 (DPC)。

設定單元測試

本節舉例說明如何設定單元測試,檢查應用程式是否與 互動 應符合預期。

步驟 1:將類別設定為接受 KeyedAppStatesReporter 做為參數

修改類別以接受,而不要直接呼叫 create() KeyedAppStatesReporter 做為參數,如範例 BatteryManager 所示 類別:
KotlinJava
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()))
 
}
}

public class BatteryManager {
   
private final KeyedAppStatesReporter reporter;
   
public BatteryManager(KeyedAppStatesReporter reporter) {
       
this.reporter = reporter;
   
}

   
public void lowBattery(int battery) {
       
final Collection

接下來,請使用 KeyedAppStatesReporter.create 取得要傳遞的例項 任何建立 BatteryManager 的位置。

步驟 2:在 build.gradle 檔案中新增企業意見回饋測試程式庫

將以下依附元件新增至應用程式的 build.gradle 檔案:

dependencies {
    testImplementation 'androidx.enterprise:enterprise-feedback-testing:1.0.0'
}

步驟 3:建立 FakeKeyedAppStatesReporter 並傳遞至類別

KotlinJava
val reporter = FakeKeyedAppStatesReporter();
val batteryManager = BatteryManager(reporter);
FakeKeyedAppStatesReporter reporter = new FakeKeyedAppStatesReporter();
BatteryManager batteryManager = new BatteryManager(reporter);

步驟 4:斷言與 FakeKeyedAppStatesReporter 的互動

舉例來說,如要檢查尚未設定的狀態:

KotlinJava
assertThat(reporter.keyedAppStates).isEmpty();
assertThat(reporter.getKeyedAppStates()).isEmpty();

或是已要求上傳特定狀態的資料:

KotlinJava
assertThat(reporter.uploadedKeyedAppStatesByKey["battery"]).isNotNull()
assertThat(reporter.getUploadedKeyedAppStatesByKey().get("battery")).isNotNull();

傳送測試意見回饋給測試 DPC

裝置政策控制器範例 Test DPC 可以接收應用程式意見回饋 下載。

步驟 1:安裝測試 DPC

安裝最新版的測試 DPC 。接著,將測試 DPC 設為裝置設定:

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

步驟 2:啟用應用程式意見回饋通知

在測試 DPC 的選單中,啟用「應用程式意見回饋通知」

啟用通知

觸發設定按鍵應用程式狀態的事件。如果成功,「測試 DPC」就會顯示 從通知中獲得意見回饋:

已顯示意見回饋