Artırılmış gerçeklik uygulamaları genellikle çalışmak için gerçek dünyadaki belirli durumlara bağlıdır. Örneğin, uygulamanız sanal bir oyun tahtası yerleştirmek için masa gibi algılanan bir yüzey gerektirebilir. Uygulamanızı farklı senaryolara göre test etmek için kontrollü bir ARCore test ortamında testler yazmak üzere ARCore test kuralı API'lerini kullanın. API'ler oturum kurulumunu ve durumunu yönetir. Böylece uygulamanızın temel mantığını test etmeye odaklanabilirsiniz.
Kitaplık bağımlılıkları ekleme
ARCore test kuralını kullanmak için uygulamanızın build.gradle dosyasına şu bağımlılıkları ekleyin:
Kotlin
dependencies { testImplementation("androidx.xr.arcore:arcore-testing:1.0.0-alpha14") }
Modern
dependencies { testImplementation "androidx.xr.arcore:arcore-testing:1.0.0-alpha14" }
Uygulamanız XR SceneCore kullanıyorsa XR SceneCore testi bağımlılığını da ekleyin:
Kotlin
dependencies { testImplementation("androidx.xr.scenecore:scenecore-testing:1.0.0-alpha15") }
Modern
dependencies { testImplementation "androidx.xr.scenecore:scenecore-testing:1.0.0-alpha15" }
Test kuralını ayarlama
JUnit testinizde, testi ayarlamak için AndroidJUnit4 test çalıştırıcısını kullanın:
@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)) }
@Before adımında, gerekli izinler ve oturum yapılandırması da dahil olmak üzere test ortamınızı ayarlayın.
Test durumları oluşturma
Belirli bir senaryoyu test etmek için test senaryosu oluşturun. Bu örnekte, el takibi hareket dedektörünün test verilerimizle çalışıp çalışmadığını test ediyoruz:
@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() }
Birim testi genellikle aşağıdaki adımları içerir:
- Testi ayarlamak için
ArCoreTestRulesimgesini kullanarak test verileri yerleştirin. Bu nesne, uygulamanızın oturumdan okuduğu ortam verilerini içerir. Sistemin testi gerçekleştirmeye hazır olduğundan emin olmak içinTestScope.advanceUntilIdlekullanın. Bu örnekte, sağ el etkinleştirilmiş ve el eklemi verilerini doldurmak için poz verileri kullanılmıştır. - Ardından testi gerçekleştirin. Uygulamanızın, yerleştirilen verileri kullanmak için özel bir davranışa ihtiyacı yoktur:
Session,ArCoreTestRuleiçine yerleştirilen verileri kullanır. - Son olarak, sonuçları kontrol edin.
Ek kaynaklar
Android'de test etme hakkında daha fazla bilgi için aşağıdaki kaynaklara bakın: