'लिखें' लेआउट की जांच करना

अपने ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) की जांच करें. इससे यह पुष्टि की जा सकेगी कि आपके Compose कोड का व्यवहार सही है. इससे आपको गड़बड़ियों का पता पहले ही चल जाता है और अपने ऐप्लिकेशन की क्वालिटी को बेहतर बनाने में मदद मिलती है.

Compose, एलिमेंट ढूंढने, उनके एट्रिब्यूट की पुष्टि करने, और उपयोगकर्ता की कार्रवाइयां करने के लिए, टेस्टिंग एपीआई का एक सेट उपलब्ध कराता है. इन एपीआई में समय में बदलाव करने जैसी बेहतर सुविधाएं भी शामिल हैं. इन एपीआई का इस्तेमाल करके, ऐसे टेस्ट बनाएं जिनसे आपके ऐप्लिकेशन के व्यवहार की पुष्टि हो सके.

व्यू

अगर कंपोज़ के बजाय व्यू का इस्तेमाल किया जा रहा है, तो Android पर ऐप्लिकेशन टेस्ट करना सेक्शन देखें.

खास तौर पर, यूज़र इंटरफ़ेस (यूआई) टेस्ट को अपने-आप होने की सुविधा चालू करना गाइड से शुरुआत करना बेहतर होगा. इसमें बताया गया है कि डिवाइस पर चलने वाले टेस्ट को कैसे अपने-आप शुरू किया जा सकता है. इसमें व्यू का इस्तेमाल करने के बारे में भी बताया गया है.

खास कॉन्सेप्ट

अपने 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 नाम का एक लागू करने का तरीका शामिल है. इस नियम की मदद से, कॉन्टेंट लिखा जा सकता है या गतिविधि को ऐक्सेस किया जा सकता है. फ़ैक्ट्री फ़ंक्शन का इस्तेमाल करके नियम बनाए जाते हैं. इसके लिए, 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 की टेस्टिंग के कुछ पहलुओं के लिए अब भी मददगार हो सकती है.

कोडलैब (कोड बनाना सीखना)

ज़्यादा जानने के लिए, Jetpack Compose Testing का कोडलैब आज़माएं.

सैंपल