ऑगमेंटेड रियलिटी (एआर) वाले ऐप्लिकेशन, आम तौर पर काम करने के लिए, असल दुनिया की खास स्थितियों पर निर्भर करते हैं. उदाहरण के लिए, हो सकता है कि आपके ऐप्लिकेशन को वर्चुअल गेम बोर्ड रखने के लिए, किसी सतह का पता लगाना पड़े. जैसे, टेबल. अलग-अलग स्थितियों में अपने ऐप्लिकेशन की जांच करने के लिए, एआरकोर टेस्ट रूल एपीआई का इस्तेमाल करें. इससे, एआरकोर के कंट्रोल वाले टेस्ट एनवायरमेंट में टेस्ट लिखे जा सकते हैं. एपीआई, सेशन सेटअप और स्टेटस को मैनेज करते हैं. इसलिए, आपके पास अपने ऐप्लिकेशन के मुख्य लॉजिक की जांच करने पर फ़ोकस करने का विकल्प होता है.
लाइब्रेरी की डिपेंडेंसी जोड़ना
एआरकोर टेस्ट रूल का इस्तेमाल करने के लिए, अपने ऐप्लिकेशन की build.gradle फ़ाइल में ये डिपेंडेंसी जोड़ें:
Kotlin
dependencies { testImplementation("androidx.xr.arcore:arcore-testing:1.0.0-alpha14") }
शानदार
dependencies { testImplementation "androidx.xr.arcore:arcore-testing:1.0.0-alpha14" }
अगर आपका ऐप्लिकेशन, एक्सआर SceneCore पर निर्भर करता है, तो एक्सआर SceneCore की टेस्टिंग डिपेंडेंसी भी शामिल करें:
Kotlin
dependencies { testImplementation("androidx.xr.scenecore:scenecore-testing:1.0.0-alpha15") }
शानदार
dependencies { testImplementation "androidx.xr.scenecore:scenecore-testing:1.0.0-alpha15" }
टेस्ट रूल सेट अप करना
अपने JUnit टेस्ट में, टेस्ट सेट अप करने के लिए
AndroidJUnit4 टेस्ट रनर का इस्तेमाल करें:
@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 चरण में, अपना टेस्टिंग एनवायरमेंट सेट अप करें. इसमें ज़रूरी अनुमतियां और सेशन कॉन्फ़िगरेशन शामिल हैं.
टेस्ट केस बनाना
किसी खास स्थिति की जांच करने के लिए, टेस्ट केस बनाएं. इस उदाहरण में, हम यह जांच करते हैं कि हमारा टेस्ट डेटा, हाथ की गतिविधि को ट्रैक करने वाले जेस्चर डिटेक्टर के साथ काम करता है या नहीं:
@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() }
यूनिट टेस्ट में अक्सर ये चरण शामिल होते हैं:
- टेस्ट सेट अप करने के लिए, टेस्ट डेटा इंजेक्ट करने के लिए
ArCoreTestRuleका इस्तेमाल करें. इस ऑब्जेक्ट में, एनवायरमेंट का वह डेटा शामिल होता है जिसे आपका ऐप्लिकेशन, सेशन से पढ़ता है.TestScope.advanceUntilIdleका इस्तेमाल करके, यह पक्का करें कि सिस्टम टेस्ट करने के लिए तैयार है. इस उदाहरण में, दाहिना हाथ चालू है. साथ ही, हाथ के जॉइंट का डेटा भरने के लिए, पोज़ डेटा का इस्तेमाल किया जाता है. - इसके बाद, टेस्ट करें. इंजेक्ट किए गए डेटा का इस्तेमाल करने के लिए, आपके ऐप्लिकेशन को किसी खास तरीके से काम करने की ज़रूरत नहीं होती.
Session, उस डेटा का इस्तेमाल करता है जिसेArCoreTestRuleमें इंजेक्ट किया गया था. - आखिर में, नतीजे देखें.
अन्य संसाधन
Android पर टेस्टिंग के बारे में ज़्यादा जानने के लिए, ये संसाधन देखें: