آزمایش کردن چیدمان Compose

میانای کاربر برنامه‌تان را آزمایش کنید تا مطمئن شوید رفتار کد Compose شما درست است. این کار به شما امکان می‌دهد خطاها را زودتر شناسایی کنید و کیفیت برنامه‌تان را بهبود ببخشید.

Compose مجموعه‌ای از میاناهای برنامه‌سازی کاربردی آزمایشی را برای یافتن عناصر، تأیید مشخصه‌های آن‌ها، و انجام کنش‌های کاربر ارائه می‌دهد. این میاناهای برنامه‌سازی کاربردی همچنین شامل ویژگی‌های پیشرفته‌ای مثل دستکاری زمان هستند. از این میاناهای برنامه‌سازی کاربردی برای ایجاد آزمایش‌های قوی استفاده کنید تا رفتار برنامه‌تان را درستی‌سنجی کنید.

بازدیدها

اگر به‌جای Compose با نماها کار می‌کنید، بخش کلی آزمایش برنامه‌ها در Android را ببینید.

به‌ویژه، راهنمای خودکارسازی آزمایش‌های میانای کاربر جای خوبی برای شروع است. این بخش نحوه خودکارسازی آزمایش‌هایی را که در دستگاه اجرا می‌شوند، ازجمله هنگام استفاده از نماها، شرح می‌دهد.

مفاهیم کلیدی

در زیر چند مفهوم کلیدی برای آزمایش کد Compose شما آورده شده است:

  • معناشناسی: معناشناسی به میانای کاربر شما معنا می‌دهد و به آزمون‌ها اجازه می‌دهد با عناصر خاص تعامل داشته باشند.
  • میاناهای برنامه‌سازی کاربردی آزمایشی: میاناهای برنامه‌سازی کاربردی آزمایشی به شما امکان می‌دهند عناصر را پیدا کنید، مشخصه‌های آن‌ها را تأیید کنید، و کنش‌های کاربر را انجام دهید.
  • همگام‌سازی: همگام‌سازی تأیید می‌کند که آزمایش‌ها قبل‌از انجام کنش‌ها یا ادعاها، منتظر می‌مانند تا رابط کاربری غیرفعال شود.
  • هم‌کنش‌پذیری: هم‌کنش‌پذیری به آزمایش‌ها امکان می‌دهد تا با هر دو عنصر Compose و View-based در یک برنامه کار کنند.

برگه تقلب آزمایش

برای دیدن نمای کلی همه موضوعات کلیدی که باید درباره آزمایش در 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 برای واسط‌های کاربر مبتنی بر View طراحی شده است، اما دانش Espresso همچنان می‌تواند برای برخی جنبه‌های آزمایش Compose مفید باشد.

Codelab

برای کسب اطلاعات بیشتر، Jetpack Compose Testing codelab را امتحان کنید.

نمونه‌ها