AndroidX Test হলো Jetpack লাইব্রেরির একটি সংগ্রহ যা আপনাকে অ্যান্ড্রয়েড অ্যাপের বিরুদ্ধে টেস্ট চালাতে দেয়। এটি এই টেস্টগুলো লিখতে সাহায্য করার জন্য বিভিন্ন টুলও সরবরাহ করে।
উদাহরণস্বরূপ, AndroidX Test, JUnit4 টেস্টে অ্যাক্টিভিটি শুরু করতে এবং সেগুলোর সাথে ইন্টারঅ্যাক্ট করার জন্য JUnit4 রুলস প্রদান করে। এতে Espresso, UI Automator এবং Robolectric সিমুলেটরের মতো UI টেস্টিং ফ্রেমওয়ার্কও রয়েছে।
AndroidX টেস্ট লাইব্রেরি যোগ করুন
AndroidX Test ব্যবহার করার জন্য, আপনাকে আপনার ডেভেলপমেন্ট এনভায়রনমেন্টের মধ্যে অ্যাপ প্রজেক্টের ডিপেন্ডেন্সিগুলো পরিবর্তন করতে হবে।
গ্রেডল নির্ভরতা যোগ করুন
আপনার অ্যাপ প্রজেক্টের ডিপেন্ডেন্সিগুলো পরিবর্তন করতে, নিচের ধাপগুলো সম্পন্ন করুন:
- ধাপ ১ : আপনার গ্রেডল মডিউলের
build.gradleফাইলটি খুলুন। - ধাপ ২ : রিপোজিটরি বিভাগে, গুগলের মেভেন রিপোজিটরিটি যেন দেখা যায় তা নিশ্চিত করুন:
allprojects {
repositories {
jcenter()
google()
}
}
- ধাপ ৩ : আপনি যে প্রতিটি AndroidX টেস্ট প্যাকেজ ব্যবহার করতে চান, তার প্যাকেজের নামটি dependencies সেকশনে যোগ করুন। উদাহরণস্বরূপ,
espresso-coreপ্যাকেজটি যোগ করতে, নিম্নলিখিত লাইনগুলো যোগ করুন:
গ্রুভি
dependencies { ... androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVersion" }
কোটলিন
dependencies { ... androidTestImplementation('androidx.test.espresso:espresso-core:$espressoVersion') }
এগুলো হলো উপলব্ধ সবচেয়ে সাধারণ AndroidX টেস্ট ডিপেন্ডেন্সিগুলো:
গ্রুভি
dependencies { // Core library androidTestImplementation "androidx.test:core:$androidXTestVersion0" // AndroidJUnitRunner and JUnit Rules androidTestImplementation "androidx.test:runner:$testRunnerVersion" androidTestImplementation "androidx.test:rules:$testRulesVersion" // Assertions androidTestImplementation "androidx.test.ext:junit:$testJunitVersion" androidTestImplementation "androidx.test.ext:truth:$truthVersion" // Espresso dependencies androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVersion" androidTestImplementation "androidx.test.espresso:espresso-contrib:$espressoVersion" androidTestImplementation "androidx.test.espresso:espresso-intents:$espressoVersion" androidTestImplementation "androidx.test.espresso:espresso-accessibility:$espressoVersion" androidTestImplementation "androidx.test.espresso:espresso-web:$espressoVersion" androidTestImplementation "androidx.test.espresso.idling:idling-concurrent:$espressoVersion" // The following Espresso dependency can be either "implementation", // or "androidTestImplementation", depending on whether you want the // dependency to appear on your APK’"s compile classpath or the test APK // classpath. androidTestImplementation "androidx.test.espresso:espresso-idling-resource:$espressoVersion" }
কোটলিন
dependencies { // Core library androidTestImplementation("androidx.test:core:$androidXTestVersion") // AndroidJUnitRunner and JUnit Rules androidTestImplementation("androidx.test:runner:$testRunnerVersion") androidTestImplementation("androidx.test:rules:$testRulesVersion") // Assertions androidTestImplementation("androidx.test.ext:junit:$testJunitVersion") androidTestImplementation("androidx.test.ext:truth:$truthVersion") // Espresso dependencies androidTestImplementation( "androidx.test.espresso:espresso-core:$espressoVersion") androidTestImplementation( "androidx.test.espresso:espresso-contrib:$espressoVersion") androidTestImplementation( "androidx.test.espresso:espresso-intents:$espressoVersion") androidTestImplementation( "androidx.test.espresso:espresso-accessibility:$espressoVersion") androidTestImplementation( "androidx.test.espresso:espresso-web:$espressoVersion") androidTestImplementation( "androidx.test.espresso.idling:idling-concurrent:$espressoVersion") // The following Espresso dependency can be either "implementation", // or "androidTestImplementation", depending on whether you want the // dependency to appear on your APK"s compile classpath or the test APK // classpath. androidTestImplementation( "androidx.test.espresso:espresso-idling-resource:$espressoVersion") }
রিলিজ নোটস পৃষ্ঠায় প্রতিটি আর্টিফ্যাক্টের সর্বশেষ সংস্করণসহ একটি সারণি রয়েছে।
এই লাইব্রেরিগুলো সম্পর্কিত নির্দিষ্ট তথ্যের জন্য প্যাকেজ সূচী বা ক্লাস সূচী দেখুন।
অপ্রচলিত ক্লাস ব্যবহার করে প্রকল্প
আপনার অ্যাপে যদি InstrumentationTestCase এবং TestSuiteLoader মতো অপ্রচলিত JUnit3-ভিত্তিক android.test ক্লাসের উপর নির্ভরশীল টেস্ট ব্যবহার করা হয়, তাহলে ফাইলের android সেকশনে নিম্নলিখিত লাইনগুলো যোগ করুন:
android {
...
useLibrary 'android.test.runner'
useLibrary 'android.test.base'
useLibrary 'android.test.mock'
}
ম্যানিফেস্ট ঘোষণা যোগ করুন
অপ্রচলিত JUnit3-ভিত্তিক android.test ক্লাসের উপর নির্ভরশীল টেস্ট চালানোর জন্য, আপনার টেস্ট অ্যাপের ম্যানিফেস্টে প্রয়োজনীয় <uses-library> এলিমেন্টগুলো যোগ করুন। উদাহরণস্বরূপ, যদি আপনি android.test.runner লাইব্রেরির উপর নির্ভরশীল টেস্ট যোগ করেন, তাহলে আপনার অ্যাপের ম্যানিফেস্টে নিম্নলিখিত এলিমেন্টটি যোগ করুন:
<!-- You don't need to include android:required="false" if your app's
minSdkVersion is 28 or higher. -->
<uses-library android:name="android.test.runner"
android:required="false" />
কোনো প্রদত্ত JUnit-ভিত্তিক ক্লাস কোন লাইব্রেরিতে রয়েছে তা নির্ধারণ করতে, JUnit-ভিত্তিক লাইব্রেরিসমূহ দেখুন।
ডেপ্রিকেটেড ক্লাস ব্যবহার করার সময় এবং অ্যান্ড্রয়েড ৯ বা তার বেশি টার্গেট করার ক্ষেত্রে বিবেচ্য বিষয়সমূহ
উচ্চতর
এই বিভাগের নির্দেশনা কেবল তখনই প্রযোজ্য হবে, যদি আপনি অ্যান্ড্রয়েড ৯ (এপিআই লেভেল ২৮) বা তার উচ্চতর সংস্করণকে টার্গেট করেন এবং আপনার অ্যাপের জন্য ন্যূনতম এসডিকে সংস্করণ অ্যান্ড্রয়েড ৯-এ সেট করা থাকে।
android.test.runner লাইব্রেরিটি পরোক্ষভাবে android.test.base এবং android.test.mock লাইব্রেরিগুলোর উপর নির্ভরশীল। যদি আপনার অ্যাপটি শুধুমাত্র android.test.base বা android.test.mock থেকে ক্লাস ব্যবহার করে, তাহলে আপনি লাইব্রেরিগুলো আলাদাভাবে অন্তর্ভুক্ত করতে পারেন:
<!-- For both of these declarations, you don't need to include
android:required="false" if your app's minSdkVersion is 28
or higher. -->
<uses-library android:name="android.test.base"
android:required="false" />
<uses-library android:name="android.test.mock"
android:required="false" />