কম্পোজ প্রচলিত টেস্টিং ফ্রেমওয়ার্কগুলোর সাথে সমন্বিত হয়।
এসপ্রেসোর সাথে আন্তঃকার্যক্ষমতা
একটি হাইব্রিড অ্যাপে, আপনি ভিউ হায়ারার্কির ভিতরে কম্পোজ কম্পোনেন্ট এবং কম্পোজ কম্পোজেবলের ভিতরে ভিউ খুঁজে পেতে পারেন ( AndroidView কম্পোজেবলের মাধ্যমে)।
উভয় প্রকার মেলানোর জন্য কোনো বিশেষ পদক্ষেপের প্রয়োজন নেই। আপনি Espresso-এর onView ব্যবহার করে ভিউ এবং ComposeTestRule ব্যবহার করে কম্পোজ এলিমেন্ট মেলান।
@Test
fun androidViewInteropTest() {
// Check the initial state of a TextView that depends on a Compose state.
Espresso.onView(withText("Hello Views")).check(matches(isDisplayed()))
// Click on the Compose button that changes the state.
composeTestRule.onNodeWithText("Click here").performClick()
// Check the new value.
Espresso.onView(withText("Hello Compose")).check(matches(isDisplayed()))
}
UiAutomator-এর সাথে আন্তঃকার্যক্ষমতা
ডিফল্টরূপে, কম্পোজেবলগুলো UiAutomator থেকে শুধুমাত্র তাদের সুবিধাজনক ডেসক্রিপ্টর (প্রদর্শিত টেক্সট, কন্টেন্ট ডেসক্রিপশন, ইত্যাদি) দ্বারা অ্যাক্সেসযোগ্য। আপনি যদি Modifier.testTag ব্যবহার করে এমন কোনো কম্পোজেবল অ্যাক্সেস করতে চান, তাহলে আপনাকে নির্দিষ্ট কম্পোজেবলটির সাবট্রি-এর জন্য testTagsAsResourceId নামক সিম্যান্টিক প্রপার্টিটি এনাবল করতে হবে। এই আচরণটি এনাবল করা সেইসব কম্পোজেবলের জন্য উপযোগী যাদের অন্য কোনো অনন্য হ্যান্ডেল নেই, যেমন স্ক্রোলযোগ্য কম্পোজেবল (উদাহরণস্বরূপ, LazyColumn )।
আপনার কম্পোজেবলস হায়ারার্কির উপরের স্তরে সিমান্টিক প্রপার্টিটি শুধুমাত্র একবার সক্রিয় করুন, যাতে Modifier.testTag সহ সমস্ত নেস্টেড কম্পোজেবলস UiAutomator থেকে অ্যাক্সেসযোগ্য হয়।
Scaffold(
// Enables for all composables in the hierarchy.
modifier = Modifier.semantics {
testTagsAsResourceId = true
}
){
// Modifier.testTag is accessible from UiAutomator for composables nested here.
LazyColumn(
modifier = Modifier.testTag("myLazyColumn")
){
// Content
}
}
Modifier.testTag(tag) দিয়ে তৈরি যেকোনো কম্পোজেবল আইটেমকে, resourceName হিসেবে একই tag ব্যবহার করে By.res(resourceName) এর মাধ্যমে অ্যাক্সেস করা যায়।
val device = UiDevice.getInstance(getInstrumentation())
val lazyColumn: UiObject2 = device.findObject(By.res("myLazyColumn"))
// Some interaction with the lazyColumn.
অতিরিক্ত সম্পদ
- অ্যান্ড্রয়েডে অ্যাপ পরীক্ষা করুন : অ্যান্ড্রয়েড টেস্টিং-এর প্রধান ল্যান্ডিং পেজটি টেস্টিং-এর মৌলিক বিষয় এবং কৌশল সম্পর্কে একটি বিস্তৃত ধারণা প্রদান করে।
- টেস্টিংয়ের মূল বিষয়সমূহ : একটি অ্যান্ড্রয়েড অ্যাপ টেস্টিং করার পেছনের মূল ধারণাগুলো সম্পর্কে আরও জানুন।
- স্থানীয় পরীক্ষা : আপনি কিছু পরীক্ষা স্থানীয়ভাবে, আপনার নিজের ওয়ার্কস্টেশনে চালাতে পারেন।
- ইনস্ট্রুমেন্টেড টেস্ট : ইনস্ট্রুমেন্টেড টেস্ট চালানোও একটি ভালো অভ্যাস। অর্থাৎ, যে টেস্টগুলো সরাসরি ডিভাইসে চলে।
- কন্টিনিউয়াস ইন্টিগ্রেশন : কন্টিনিউয়াস ইন্টিগ্রেশন আপনাকে আপনার টেস্টগুলোকে ডেপ্লয়মেন্ট পাইপলাইনে একীভূত করতে দেয়।
- বিভিন্ন স্ক্রিন সাইজ পরীক্ষা করুন : ব্যবহারকারীদের জন্য যেহেতু অনেক ডিভাইস উপলব্ধ আছে, তাই আপনার বিভিন্ন স্ক্রিন সাইজ পরীক্ষা করে দেখা উচিত।
- এসপ্রেসো : যদিও এটি ভিউ-ভিত্তিক UI-এর জন্য তৈরি, কম্পোজ টেস্টিং-এর কিছু ক্ষেত্রে এসপ্রেসো সম্পর্কিত জ্ঞান সহায়ক হতে পারে।