अपने ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) की जांच करके पुष्टि करें कि Compose कोड सही तरीके से काम कर रहा है. इससे आपको गड़बड़ियों का पता शुरुआती दौर में ही चल जाता है और आपके ऐप्लिकेशन की क्वालिटी बेहतर होती है.
Compose, एलिमेंट ढूंढने, उनके एट्रिब्यूट की पुष्टि करने, और उपयोगकर्ता की कार्रवाइयां करने के लिए, टेस्टिंग एपीआई का एक सेट उपलब्ध कराता है. इन एपीआई में, समय में बदलाव करने जैसी बेहतर सुविधाएं भी शामिल हैं. अपने ऐप्लिकेशन के व्यवहार की पुष्टि करने के लिए, इन एपीआई का इस्तेमाल करके बेहतर टेस्ट बनाएं.
शुरुआत करने के लिए एक बेहतर विकल्प है.व्यू
खास तौर पर, यूज़र इंटरफ़ेस (यूआई) की टेस्टिंग को ऑटोमेट करना गाइड, शुरुआत करने के लिए एक बेहतर विकल्प है. इसमें बताया गया है कि डिवाइस पर चलने वाले टेस्ट को कैसे ऑटोमेट किया जा सकता है. इसमें व्यू का इस्तेमाल करने पर भी टेस्ट को ऑटोमेट करने का तरीका शामिल है.
खास कॉन्सेप्ट
Compose कोड की टेस्टिंग के लिए, यहां कुछ खास कॉन्सेप्ट दिए गए हैं:
- सिमैंटिक: सिमैंटिक, आपके यूज़र इंटरफ़ेस (यूआई) को मतलब देते हैं. इससे टेस्ट, खास एलिमेंट के साथ इंटरैक्ट कर पाते हैं.
- टेस्टिंग एपीआई: टेस्टिंग एपीआई की मदद से, एलिमेंट ढूंढे जा सकते हैं, उनके एट्रिब्यूट की पुष्टि की जा सकती है, और उपयोगकर्ता की कार्रवाइयां की जा सकती हैं.
- सिंक्रनाइज़ेशन: सिंक्रनाइज़ेशन से पुष्टि होती है कि कार्रवाइयां करने या दावे करने से पहले, टेस्ट यूज़र इंटरफ़ेस (यूआई) के खाली होने का इंतज़ार करते हैं.
- इंटरऑपरेबिलिटी: इंटरऑपरेबिलिटी की मदद से, टेस्ट एक ही ऐप्लिकेशन में Compose और व्यू-आधारित, दोनों तरह के एलिमेंट के साथ काम कर पाते हैं.
टेस्टिंग की चीटशीट
Compose में टेस्टिंग के बारे में जानने के लिए, टेस्टिंग की चीटशीट देखें. इसमें उन सभी अहम विषयों की खास जानकारी दी गई है जिनके बारे में आपको जानना चाहिए.
सेटअप
Compose कोड की टेस्टिंग करने के लिए, अपने ऐप्लिकेशन को सेट अप करें.
सबसे पहले, यूज़र इंटरफ़ेस (यूआई) की टेस्टिंग वाले मॉड्यूल की 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 और Android
के लिए AndroidComposeTestRule का लागू करने का तरीका शामिल है. इस नियम के तहत, Compose कॉन्टेंट सेट किया जा सकता है या गतिविधि को ऐक्सेस किया जा सकता है. फ़ैक्ट्री फ़ंक्शन का इस्तेमाल करके नियम बनाए जाते हैं,
ये फ़ंक्शन createComposeRule या अगर आपको किसी गतिविधि को ऐक्सेस करना है,
createAndroidComposeRule हो सकते हैं. Compose के लिए, यूज़र इंटरफ़ेस (यूआई) की सामान्य टेस्टिंग कुछ इस तरह दिखती है:
// 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()
}
}
अतिरिक्त संसाधन
- Android पर ऐप्लिकेशन की टेस्टिंग करना: Android की टेस्टिंग के मुख्य लैंडिंग पेज पर, टेस्टिंग की बुनियादी बातों और तकनीकों के बारे में ज़्यादा जानकारी दी गई है.
- टेस्टिंग की बुनियादी बातें: Android ऐप्लिकेशन की टेस्टिंग के मुख्य कॉन्सेप्ट के बारे में ज़्यादा जानें.
- स्थानीय टेस्ट: कुछ टेस्ट, स्थानीय तौर पर अपने वर्कस्टेशन पर किए जा सकते हैं.
- इंस्ट्रुमेंटेड टेस्ट: इंस्ट्रुमेंटेड टेस्ट भी करना एक अच्छी आदत है. यानी, ऐसे टेस्ट जो सीधे डिवाइस पर किए जाते हैं.
- लगातार इंटिग्रेशन करना: लगातार इंटिग्रेशन की मदद से, टेस्ट को डिप्लॉयमेंट पाइपलाइन में इंटिग्रेट किया जा सकता है.
- अलग-अलग स्क्रीन साइज़ के लिए टेस्ट करना: उपयोगकर्ताओं के पास कई तरह के डिवाइस उपलब्ध हैं. इसलिए, आपको अलग-अलग स्क्रीन साइज़ के लिए टेस्ट करना चाहिए.
- Espresso: Espresso को व्यू-आधारित यूज़र इंटरफ़ेस (यूआई) के लिए बनाया गया है. हालांकि, Compose की टेस्टिंग के कुछ पहलुओं के लिए, Espresso की जानकारी मददगार साबित हो सकती है.
कोडलैब (कोड बनाना सीखना)
ज़्यादा जानने के लिए, Jetpack Compose की टेस्टिंग का कोडलैब आज़माएं.
सैंपल
आपके लिए सुझाव
- ध्यान दें: JavaScript बंद होने पर, लिंक का टेक्स्ट दिखता है
- Compose में सिमैंटिक
- Compose में विंडो इनसेट
- विचार करने लायक अन्य बातें