ARCore টেস্ট নিয়মের মাধ্যমে আপনার অ্যাপ পরীক্ষা করুন

প্রযোজ্য XR ডিভাইস
এইসব XR ডিভাইসের জন্য অভিজ্ঞতা তৈরি করতে এই নির্দেশিকা আপনাকে সাহায্য করে।
XR হেডসেট
ওয়্যারড XR গ্লাস
অডিও ও
ডিসপ্লে গ্লাস

অগমেন্টেড রিয়েলিটি অ্যাপগুলি প্রায়শই কাজ করার জন্য বাস্তব জগতের নির্দিষ্ট পরিস্থিতির উপর নির্ভর করে। যেমন, ভার্চুয়াল গেম বোর্ড প্লেস করার জন্য আপনার অ্যাপকে হয়ত টেবিলের মতো শনাক্ত করা সারফেসের প্রয়োজন হতে পারে। বিভিন্ন পরিস্থিতিতে আপনার অ্যাপ পরীক্ষা করতে, নিয়ন্ত্রিত ARCore টেস্ট এনভায়রনমেন্টে টেস্ট লেখার জন্য ARCore টেস্ট রুল API ব্যবহার করুন। API সেশন সেট-আপ ও স্টেট ম্যানেজ করে, তাই আপনি অ্যাপের মূল লজিক টেস্টিংয়ের উপর ফোকাস করতে পারেন।

লাইব্রেরি নির্ভরতা যোগ করা

ARCore টেস্ট নিয়ম ব্যবহার করতে, আপনার অ্যাপের build.gradle ফাইলে এইসব ডিপেন্ডেন্সি যোগ করুন:

Kotlin

dependencies {
    testImplementation("androidx.xr.arcore:arcore-testing:1.1.0-alpha01")
}

গ্ৰুভি

dependencies {
    testImplementation "androidx.xr.arcore:arcore-testing:1.1.0-alpha01"
}

আপনার অ্যাপ XR SceneCore-এর উপর নির্ভরশীল হলে, এর সাথে XR SceneCore টেস্টিং সংক্রান্ত নির্ভরতাও যোগ করুন:

Kotlin

dependencies {
    testImplementation("androidx.xr.scenecore:scenecore-testing:1.1.0-alpha01")
}

গ্ৰুভি

dependencies {
    testImplementation "androidx.xr.scenecore:scenecore-testing:1.1.0-alpha01"
}

টেস্ট নিয়ম সেট-আপ করা

আপনার JUnit test-এ, একটি টেস্ট সেট-আপ করতে 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()

    runBlocking {
        val sessionCreateResult = Session.create(context = activity, coroutineContext = testDispatcher)
        session = (sessionCreateResult as SessionCreateSuccess).session
    }

    // Configure the session.
    session.configure(Config.Builder(session.config).setHandTracking(HandTrackingMode.BOTH).build())
}

@Before ধাপে, প্রয়োজনীয় অনুমতি ও সেশন কনফিগারেশন সহ আপনার টেস্টিং এনভায়রনমেন্ট সেট-আপ করুন।

টেস্ট কেস তৈরি করা

নির্দিষ্ট কোনও পরিস্থিতি পরীক্ষা করার জন্য টেস্ট কেস তৈরি করুন। এই উদাহরণে, আমাদের টেস্ট ডেটার সাথে হ্যান্ড ট্র্যাকিং জেসচার ডিটেক্টর কাজ করে কিনা তা আমরা পরীক্ষা করে দেখি:

@Test
fun test_thumbsUp() = runTest(testDispatcher) {
    arCoreTestRule.rightHandTester.isVisible = true
    arCoreTestRule.rightHandTester.handJointMap = gestureThumbsUp
    advanceUntilIdle()
    val handState = Hand.right(session).state.value

    val isThumbsUp = detectThumbsUp(handState)
    assertThat(isThumbsUp).isTrue()
}

ইউনিট টেস্টে সাধারণত এইসব ধাপ থাকে:

  1. পরীক্ষা সেট-আপ করতে, ArCoreTestRule ব্যবহার করে পরীক্ষার ডেটা ইনজেক্ট করুন। এই অবজেক্টে এনভায়রনমেন্ট ডেটা থাকে যা আপনার অ্যাপ সেশন থেকে রিড করে। সিস্টেমটি পরীক্ষা চালানোর জন্য রেডি কিনা তা নিশ্চিত করতে TestScope.advanceUntilIdle ব্যবহার করুন। এই উদাহরণে, ডান হাতটি চালু করা আছে এবং হাতের জয়েন্ট ডেটা পূরণ করতে পোজ ডেটা ব্যবহার করা হয়।
  2. তারপর, পরীক্ষাটি চালান। ইনজেক্ট করা ডেটা ব্যবহার করার জন্য আপনার অ্যাপের বিশেষ আচরণ করার প্রয়োজন নেই: Session, ইনজেক্ট করা ডেটা ব্যবহার করে। ArCoreTestRule
  3. সবশেষে, ফলাফল চেক করুন।

অতিরিক্ত রিসোর্স

Android-এ পরীক্ষা করা সম্পর্কে আরও তথ্যের জন্য, নিম্নলিখিত রিসোর্স দেখুন: