আপনার Compose কোডের আচরণ সঠিক আছে কিনা তা যাচাই করতে আপনার অ্যাপের UI পরীক্ষা করুন। এর মাধ্যমে আপনি দ্রুত ত্রুটি ধরতে পারবেন এবং আপনার অ্যাপের মান উন্নত করতে পারবেন।
কম্পোজ এলিমেন্ট খুঁজে বের করতে, সেগুলোর অ্যাট্রিবিউট যাচাই করতে এবং ব্যবহারকারীর কার্যকলাপ সম্পাদন করতে একগুচ্ছ টেস্টিং এপিআই প্রদান করে। এই এপিআইগুলোতে সময় নিয়ন্ত্রণের মতো উন্নত বৈশিষ্ট্যও অন্তর্ভুক্ত রয়েছে। আপনার অ্যাপের আচরণ যাচাই করার জন্য শক্তিশালী টেস্ট তৈরি করতে এই এপিআইগুলো ব্যবহার করুন।
মতামত
আপনি যদি Compose-এর পরিবর্তে Views নিয়ে কাজ করেন, তাহলে Android-এ অ্যাপ পরীক্ষা করার সাধারণ অংশটি দেখুন।
বিশেষ করে, ‘Automate UI tests’ গাইডটি দিয়ে শুরু করা একটি ভালো উপায়। এতে বর্ণনা করা হয়েছে কীভাবে আপনি ডিভাইসে চালিত টেস্টগুলোকে স্বয়ংক্রিয় করতে পারেন, যার মধ্যে ভিউ ব্যবহার করার সময়কার টেস্টগুলোও অন্তর্ভুক্ত।
মূল ধারণা
আপনার কম্পোজ কোড পরীক্ষা করার জন্য কয়েকটি মূল ধারণা নিচে দেওয়া হলো:
- শব্দার্থবিদ্যা : শব্দার্থবিদ্যা আপনার UI-কে অর্থ প্রদান করে, যা টেস্টগুলোকে নির্দিষ্ট এলিমেন্টের সাথে ইন্টারঅ্যাক্ট করার সুযোগ দেয়।
- টেস্টিং এপিআই : টেস্টিং এপিআই আপনাকে এলিমেন্ট খুঁজে বের করতে, সেগুলোর অ্যাট্রিবিউট যাচাই করতে এবং ব্যবহারকারীর বিভিন্ন অ্যাকশন সম্পাদন করতে দেয়।
- সিঙ্ক্রোনাইজেশন : সিঙ্ক্রোনাইজেশন যাচাই করে যে, টেস্টগুলো কোনো অ্যাকশন সম্পাদন করার বা অ্যাসারশন করার আগে UI-এর নিষ্ক্রিয় হওয়ার জন্য অপেক্ষা করে।
- আন্তঃকার্যক্ষমতা : আন্তঃকার্যক্ষমতা একই অ্যাপের মধ্যে কম্পোজ এবং ভিউ-ভিত্তিক উভয় উপাদানের সাথেই পরীক্ষা চালানোর সুযোগ করে দেয়।
পরীক্ষার চিটশিট
কম্পোজে টেস্টিং সম্পর্কে আপনার জানা উচিত এমন সমস্ত মূল বিষয়গুলির একটি সংক্ষিপ্ত বিবরণের জন্য টেস্টিং চিটশিটটি দেখুন।
সেটআপ
আপনার অ্যাপটি এমনভাবে সেট আপ করুন যাতে আপনি কম্পোজ কোড পরীক্ষা করতে পারেন।
প্রথমে, আপনার UI টেস্টগুলো যে মডিউলে রয়েছে, তার build.gradle ফাইলে নিম্নলিখিত ডিপেন্ডেন্সিগুলো যোগ করুন:
// Test rules and transitive dependencies:
androidTestImplementation("androidx.compose.ui:ui-test-junit4:$compose_version")
// Needed for createComposeRule(), but not for createAndroidComposeRule<YourActivity>():
debugImplementation("androidx.compose.ui:ui-test-manifest:$compose_version")
এই মডিউলে একটি ComposeTestRule এবং AndroidComposeTestRule নামে Android-এর জন্য একটি ইমপ্লিমেন্টেশন অন্তর্ভুক্ত রয়েছে। এই রুলের মাধ্যমে আপনি Compose কন্টেন্ট সেট করতে বা অ্যাক্টিভিটি অ্যাক্সেস করতে পারেন। আপনি ফ্যাক্টরি ফাংশন, যেমন createComposeRule অথবা, যদি আপনার কোনো অ্যাক্টিভিটি অ্যাক্সেস করার প্রয়োজন হয়, তাহলে createAndroidComposeRule ব্যবহার করে রুলগুলো তৈরি করেন। Compose-এর জন্য একটি সাধারণ UI টেস্ট দেখতে এইরকম হয়:
// file: app/src/androidTest/java/com/package/MyComposeTest.kt
class MyComposeTest {
@get:Rule val composeTestRule = createComposeRule()
// use createAndroidComposeRule<YourActivity>() if you need access to
// an activity
@Test
fun myTest() {
// Start the app
composeTestRule.setContent {
MyAppTheme {
MainScreen(uiState = fakeUiState, /*...*/)
}
}
composeTestRule.onNodeWithText("Continue").performClick()
composeTestRule.onNodeWithText("Welcome").assertIsDisplayed()
}
}
অতিরিক্ত সম্পদ
- অ্যান্ড্রয়েডে অ্যাপ পরীক্ষা করুন : অ্যান্ড্রয়েড টেস্টিং-এর প্রধান ল্যান্ডিং পেজটি টেস্টিং-এর মৌলিক বিষয় এবং কৌশল সম্পর্কে একটি বিস্তৃত ধারণা প্রদান করে।
- টেস্টিংয়ের মূল বিষয়সমূহ : একটি অ্যান্ড্রয়েড অ্যাপ টেস্টিং করার পেছনের মূল ধারণাগুলো সম্পর্কে আরও জানুন।
- স্থানীয় পরীক্ষা : আপনি কিছু পরীক্ষা স্থানীয়ভাবে, আপনার নিজের ওয়ার্কস্টেশনে চালাতে পারেন।
- ইনস্ট্রুমেন্টেড টেস্ট : ইনস্ট্রুমেন্টেড টেস্ট চালানোও একটি ভালো অভ্যাস। অর্থাৎ, যে টেস্টগুলো সরাসরি ডিভাইসে চলে।
- কন্টিনিউয়াস ইন্টিগ্রেশন : কন্টিনিউয়াস ইন্টিগ্রেশন আপনাকে আপনার টেস্টগুলোকে ডেপ্লয়মেন্ট পাইপলাইনে একীভূত করতে দেয়।
- বিভিন্ন স্ক্রিন সাইজ পরীক্ষা করুন : ব্যবহারকারীদের জন্য যেহেতু অনেক ডিভাইস উপলব্ধ আছে, তাই আপনার বিভিন্ন স্ক্রিন সাইজ পরীক্ষা করে দেখা উচিত।
- এসপ্রেসো : যদিও এটি ভিউ-ভিত্তিক UI-এর জন্য তৈরি, কম্পোজ টেস্টিং-এর কিছু ক্ষেত্রে এসপ্রেসো সম্পর্কিত জ্ঞান সহায়ক হতে পারে।
কোডল্যাব
আরও জানতে, Jetpack Compose Testing কোডল্যাবটি দেখুন।
নমুনা
আপনার জন্য প্রস্তাবিত
- দ্রষ্টব্য: জাভাস্ক্রিপ্ট বন্ধ থাকলেও লিঙ্কের লেখা প্রদর্শিত হয়।
- কম্পোজে শব্দার্থবিদ্যা
- কম্পোজে উইন্ডো ইনসেট
- অন্যান্য বিবেচ্য বিষয়