অগমেন্টেড রিয়েলিটি অ্যাপগুলো কাজ করার জন্য প্রায়শই নির্দিষ্ট বাস্তব-জগতের পরিস্থিতির উপর নির্ভর করে। উদাহরণস্বরূপ, একটি ভার্চুয়াল গেম বোর্ড স্থাপন করার জন্য আপনার অ্যাপটির একটি সনাক্তকৃত পৃষ্ঠের, যেমন একটি টেবিলের, প্রয়োজন হতে পারে। বিভিন্ন পরিস্থিতিতে আপনার অ্যাপটি পরীক্ষা করার জন্য, একটি নিয়ন্ত্রিত ARCore পরীক্ষা পরিবেশে টেস্ট লেখার জন্য ARCore টেস্ট রুল API ব্যবহার করুন। এই API-গুলো সেশন সেটআপ এবং স্টেট পরিচালনা করে, ফলে আপনি আপনার অ্যাপের মূল লজিক পরীক্ষা করার উপর মনোযোগ দিতে পারেন।
লাইব্রেরি নির্ভরতা যোগ করুন
ARCore টেস্ট রুল ব্যবহার করতে, আপনার অ্যাপের build.gradle ফাইলে এই ডিপেন্ডেন্সিগুলো যোগ করুন:
কোটলিন
dependencies { testImplementation("androidx.xr.arcore:arcore-testing:1.0.0-alpha14") }
গ্রুভি
dependencies { testImplementation "androidx.xr.arcore:arcore-testing:1.0.0-alpha14" }
আপনার অ্যাপটি যদি XR SceneCore-এর উপর নির্ভরশীল হয়, তাহলে XR SceneCore টেস্টিং ডিপেন্ডেন্সিটিও অন্তর্ভুক্ত করুন:
কোটলিন
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এ ইনজেক্ট করা হয়েছিল। - অবশেষে, ফলাফলগুলো যাচাই করুন।
অতিরিক্ত সম্পদ
অ্যান্ড্রয়েডে টেস্টিং সম্পর্কে আরও তথ্যের জন্য, নিম্নলিখিত রিসোর্সগুলো দেখুন: