如要測試 Play Age Signals API (Beta 版) 與應用程式的整合,請使用年齡信號構件中提供的 FakeAgeSignalsManager 實作項目。FakeAgeSignalsManager
實作可讓您模擬 API 的行為。
FakeAgeSignalsManager
僅供單元或整合測試使用,用來確認應用程式的行為。如要測試整合,請將 AgeSignalsManager
執行個體替換為 FakeAgeSignalsManager
執行個體。
以下範例模擬已驗證成人身分的回應:
AgeSignalsResult fakeVerifiedUser =
AgeSignalsResult.builder()
.setUserStatus(AgeSignalsVerificationStatus.VERIFIED)
.build();
FakeAgeSignalsManager manager = new FakeAgeSignalsManager();
manager.setNextAgeSignalsResult(fakeVerifiedUser);
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
.addOnSuccessListener(/* handle success case */)
.addOnFailureListener(/* handle failure case */);
以下範例模擬 13 至 17 歲受監護使用者的回應:
AgeSignalsResult fakeSupervisedUser =
AgeSignalsResult.builder()
.setUserStatus(AgeSignalsVerificationStatus.SUPERVISED)
.setAgeLower(13)
.setAgeUpper(17)
.setInstallId("fake_install_id")
.build();
FakeAgeSignalsManager manager = new FakeAgeSignalsManager();
manager.setNextAgeSignalsResult(fakeSupervisedUser);
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
.addOnSuccessListener(/* handle success case */)
.addOnFailureListener(/* handle failure case */);
以下範例模擬了對象為 13 至 17 歲受監護使用者,且先前未核准任何重大變更時,系統對待處理重大變更的核准要求所做的回應:
AgeSignalsResult fakeSupervisedApprovalPendingUser =
AgeSignalsResult.builder()
.setUserStatus(AgeSignalsVerificationStatus.SUPERVISED_APPROVAL_PENDING)
.setAgeLower(13)
.setAgeUpper(17)
.setInstallId("fake_install_id")
.build();
FakeAgeSignalsManager manager = new FakeAgeSignalsManager();
manager.setNextAgeSignalsResult(fakeSupervisedApprovalPendingUser);
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
.addOnSuccessListener(/* handle success case */)
.addOnFailureListener(/* handle failure case */);
以下範例模擬的回應,是針對 13 到 17 歲的受監護使用者,其重大變更核准狀態為待處理,且所有重大變更 (包括 2025 年 2 月 1 日生效的重大變更) 都已核准:
AgeSignalsResult fakeSupervisedApprovalPendingUser =
AgeSignalsResult.builder()
.setUserStatus(AgeSignalsVerificationStatus.SUPERVISED_APPROVAL_PENDING)
.setAgeLower(13)
.setAgeUpper(17)
.setMostRecentApprovalDate(
Date.from(LocalDate.of(2025, 2, 1).atStartOfDay(ZoneOffset.UTC).toInstant()))
.setInstallId("fake_install_id")
.build();
FakeAgeSignalsManager manager = new FakeAgeSignalsManager();
manager.setNextAgeSignalsResult(fakeSupervisedApprovalPendingUser);
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
.addOnSuccessListener(/* handle success case */)
.addOnFailureListener(/* handle failure case */);
以下範例模擬 13 至 17 歲受監護使用者遭拒核准重大變更的情況,該使用者已核准所有重大變更,包括自 2025 年 2 月 1 日生效的重大變更:
AgeSignalsResult fakeSupervisedApprovalDeniedUser =
AgeSignalsResult.builder()
.setUserStatus(AgeSignalsVerificationStatus.SUPERVISED_APPROVAL_DENIED)
.setAgeLower(13)
.setAgeUpper(17)
.setMostRecentApprovalDate(
Date.from(LocalDate.of(2025, 2, 1).atStartOfDay(ZoneOffset.UTC).toInstant()))
.setInstallId("fake_install_id")
.build();
FakeAgeSignalsManager manager = new FakeAgeSignalsManager();
manager.setNextAgeSignalsResult(fakeSupervisedApprovalDeniedUser);
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
.addOnSuccessListener(/* handle success case */)
.addOnFailureListener(/* handle failure case */);
以下範例會模擬不明使用者狀態的回應:
AgeSignalsResult fakeUnknownUser =
AgeSignalsResult.builder().setUserStatus(AgeSignalsVerificationStatus.UNKNOWN).build();
FakeAgeSignalsManager manager = new FakeAgeSignalsManager();
manager.setNextAgeSignalsResult(fakeUnknownUser);
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
.addOnSuccessListener(/* handle success case */)
.addOnFailureListener(/* handle failure case */);
以下範例會模擬含有網路錯誤代碼的回應:
FakeAgeSignalsManager manager = new FakeAgeSignalsManager();
manager.setNextAgeSignalsException(
new AgeSignalsException(AgeSignalsErrorCode.NETWORK_ERROR));
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
.addOnSuccessListener(/* handle success case */)
.addOnFailureListener(/* handle failure case */);