Các ứng dụng thực tế tăng cường thường phụ thuộc vào những tình huống cụ thể ngoài đời thực để hoạt động. Ví dụ: ứng dụng của bạn có thể yêu cầu một bề mặt được phát hiện, chẳng hạn như một chiếc bàn, để đặt một bảng trò chơi ảo. Để kiểm thử ứng dụng trong nhiều tình huống, hãy dùng các API quy tắc kiểm thử ARCore để viết các kiểm thử trong một môi trường thử nghiệm ARCore có kiểm soát. Các API này xử lý việc thiết lập và trạng thái phiên, vì vậy, bạn có thể tập trung vào việc kiểm thử logic cốt lõi của ứng dụng.
Thêm phần phụ thuộc thư viện
Để sử dụng quy tắc kiểm thử ARCore, hãy thêm các phần phụ thuộc này vào tệp build.gradle của ứng dụng:
Kotlin
dependencies { testImplementation("androidx.xr.arcore:arcore-testing:1.0.0-alpha14") }
Groovy
dependencies { testImplementation "androidx.xr.arcore:arcore-testing:1.0.0-alpha14" }
Nếu ứng dụng của bạn phụ thuộc vào XR SceneCore, hãy thêm cả phần phụ thuộc kiểm thử XR SceneCore:
Kotlin
dependencies { testImplementation("androidx.xr.scenecore:scenecore-testing:1.0.0-alpha15") }
Groovy
dependencies { testImplementation "androidx.xr.scenecore:scenecore-testing:1.0.0-alpha15" }
Thiết lập quy tắc kiểm thử
Trong JUnit test, hãy sử dụng trình chạy kiểm thử AndroidJUnit4 để thiết lập một bài kiểm thử:
@Rule @JvmField val arCoreTestRule = ArCoreTestRule() private lateinit var activityController: ActivityController<ComponentActivity> private lateinit var activity: ComponentActivity private lateinit var testDispatcher: TestDispatcher private lateinit var testScope: TestScope private lateinit var session: Session @Before fun setUp() { testDispatcher = StandardTestDispatcher() testScope = TestScope(testDispatcher) activityController = Robolectric.buildActivity(ComponentActivity::class.java) activity = activityController.get() // Set up the activity permissions. shadowOf(activity.application).grantPermissions(HAND_TRACKING) activityController.create().start().resume() val sessionCreateResult = Session.create(activity = activity, coroutineContext = testDispatcher) session = (sessionCreateResult as SessionCreateSuccess).session // Configure the session. session.configure(session.config.copy(handTracking = HandTrackingMode.BOTH)) }
Trong bước @Before, hãy thiết lập môi trường thử nghiệm, bao gồm cả các quyền bắt buộc và cấu hình phiên.
Tạo các trường hợp kiểm thử
Tạo một trường hợp kiểm thử để kiểm thử một tình huống nhất định. Trong ví dụ này, chúng ta kiểm thử xem một bộ phát hiện cử chỉ theo dõi bàn tay có hoạt động với dữ liệu kiểm thử của chúng ta hay không:
@Test fun test_thumbsUp() = runTest(testDispatcher) { arCoreTestRule.rightHand.isVisible = true arCoreTestRule.rightHand.handJointMap = gestureThumbsUp advanceUntilIdle() val handState = Hand.right(session)?.state?.value ?: fail("Did not detect a right hand") val isThumbsUp = detectThumbsUp(handState) assertThat(isThumbsUp).isTrue() }
Một kiểm thử đơn vị thường bao gồm các bước sau:
- Để thiết lập kiểm thử, hãy dùng
ArCoreTestRuleđể chèn dữ liệu kiểm thử. Đối tượng này chứa dữ liệu môi trường mà ứng dụng của bạn đọc được từ phiên. Sử dụngTestScope.advanceUntilIdleđể đảm bảo hệ thống đã sẵn sàng thực hiện kiểm thử. Trong ví dụ này, tay phải được bật và dữ liệu tư thế được dùng để điền dữ liệu khớp bàn tay. - Sau đó, hãy thực hiện kiểm thử. Ứng dụng của bạn không cần hành vi đặc biệt để sử dụng dữ liệu được chèn:
Sessionsử dụng dữ liệu được chèn vàoArCoreTestRule. - Cuối cùng, hãy kiểm tra kết quả.
Tài nguyên khác
Để biết thêm thông tin về quy trình kiểm thử trên Android, hãy tham khảo các tài nguyên sau: