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

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

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

व्यू

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

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

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

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

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

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

सैंपल