Kiểm thử việc tích hợp API Dấu hiệu về độ tuổi của Play (thử nghiệm)

Để kiểm thử việc tích hợp API Dấu hiệu về độ tuổi của Play (thử nghiệm) với ứng dụng, hãy sử dụng phương thức triển khai FakeAgeSignalsManager có trong cấu phần phần mềm dấu hiệu về độ tuổi. Cách triển khai FakeAgeSignalsManager cho phép bạn mô phỏng hành vi của API.

FakeAgeSignalsManager chỉ dành cho các kiểm thử đơn vị hoặc kiểm thử tích hợp để xác nhận hành vi của ứng dụng. Để kiểm thử quá trình tích hợp, hãy thay thế thực thể AgeSignalsManager bằng thực thể FakeAgeSignalsManager.

Ví dụ sau đây mô phỏng phản hồi cho một người lớn đã được xác minh:

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 */);

Ví dụ sau đây mô phỏng phản hồi cho một người dùng được giám sát từ 13 đến 17 tuổi:

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 */);

Ví dụ sau đây mô phỏng phản hồi cho một yêu cầu phê duyệt thay đổi đáng kể đang chờ xử lý đối với một người dùng được giám sát từ 13 đến 17 tuổi và chưa từng có yêu cầu phê duyệt thay đổi đáng kể nào trước đó:

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 */);

Ví dụ sau đây mô phỏng phản hồi cho một yêu cầu phê duyệt thay đổi quan trọng đang chờ xử lý đối với một người dùng được giám sát từ 13 đến 17 tuổi, trong đó tất cả các thay đổi quan trọng đều được phê duyệt cho đến hết thay đổi quan trọng có hiệu lực từ ngày 1/2/2025:

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 */);

Ví dụ sau đây mô phỏng trường hợp yêu cầu phê duyệt thay đổi quan trọng bị từ chối đối với một người dùng được giám sát từ 13 đến 17 tuổi, trong đó tất cả các thay đổi quan trọng đều được phê duyệt cho đến hết thay đổi quan trọng có hiệu lực từ ngày 1/2/2025:

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 */);

Ví dụ sau đây mô phỏng phản hồi cho trạng thái người dùng không xác định:

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 */);

Ví dụ sau đây mô phỏng phản hồi bằng mã lỗi mạng:

FakeAgeSignalsManager manager = new FakeAgeSignalsManager();
manager.setNextAgeSignalsException(
  new AgeSignalsException(AgeSignalsErrorCode.NETWORK_ERROR));
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
  .addOnSuccessListener(/* handle success case */)
  .addOnFailureListener(/* handle failure case */);