طرح نوشتن خود را تست کنید
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
رابط کاربری برنامه خود را آزمایش کنید تا بررسی کنید که رفتار کد نوشتن شما درست است. این به شما امکان می دهد خطاها را زودتر تشخیص دهید و کیفیت برنامه خود را بهبود ببخشید.
Compose مجموعهای از APIهای آزمایشی را برای یافتن عناصر، تأیید ویژگیهای آنها و انجام اقدامات کاربر ارائه میکند. API ها همچنین شامل ویژگی های پیشرفته ای مانند دستکاری زمان هستند. از این APIها برای ایجاد تست های قوی که رفتار برنامه شما را تأیید می کند، استفاده کنید.
بازدیدها
اگر به جای نوشتن با view ها کار می کنید، بخش تست برنامه های عمومی در Android را ببینید.
به طور خاص، یک مکان خوب برای شروع، راهنمای تست های خودکار رابط کاربری است. این نشان میدهد که چگونه میتوانید آزمایشهایی را که روی دستگاه اجرا میشوند، از جمله هنگام استفاده از نماها، خودکار کنید.
مفاهیم کلیدی
در زیر برخی از مفاهیم کلیدی برای آزمایش کد Compose شما آمده است:
- Semantics : Semantics به UI شما معنا می بخشد و به تست ها اجازه می دهد با عناصر خاص تعامل داشته باشند.
- تست API ها : آزمایش API ها به شما امکان می دهد عناصر را پیدا کنید، ویژگی های آنها را تأیید کنید و اقدامات کاربر را انجام دهید.
- همگامسازی : همگامسازی تأیید میکند که آزمایشها قبل از انجام اقدامات یا اظهارنظر منتظر میمانند تا UI بیکار باشد.
- قابلیت همکاری : قابلیت همکاری تست ها را قادر می سازد تا با عناصر Compose و View-based در یک برنامه کار کنند.
تست چیت شیت
برای مروری بر تمام موضوعات کلیدی که باید در مورد تست کردن در 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
و یک پیاده سازی برای اندروید به نام AndroidComposeTestRule
است. از طریق این قانون می توانید Compose content را تنظیم کنید یا به فعالیت دسترسی داشته باشید. قوانین را با استفاده از توابع کارخانه ایجاد می کنید، یا createComposeRule
یا در صورت نیاز به دسترسی به یک فعالیت، createAndroidComposeRule
. یک تست UI معمولی برای 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()
}
}
منابع اضافی
- آزمایش برنامه ها در اندروید : صفحه اصلی آزمایش اندروید نمای وسیع تری از اصول و تکنیک های آزمایش ارائه می دهد.
- اصول آزمایش : درباره مفاهیم اصلی آزمایش یک برنامه اندروید بیشتر بدانید.
- تست های محلی : می توانید برخی از آزمایش ها را به صورت محلی، در ایستگاه کاری خود اجرا کنید.
- تستهای ابزاری : اجرای تستهای ابزاری نیز تمرین خوبی است. یعنی تست هایی که مستقیماً روی دستگاه اجرا می شوند.
- ادغام مداوم : ادغام مداوم به شما امکان می دهد آزمایشات خود را در خط لوله استقرار خود ادغام کنید.
- اندازههای مختلف صفحه نمایش را آزمایش کنید : با دستگاههای زیادی که در دسترس کاربران است، باید اندازههای مختلف صفحه نمایش را آزمایش کنید.
- اسپرسو : در حالی که برای UI های مبتنی بر View در نظر گرفته شده است، دانش اسپرسو همچنان می تواند برای برخی از جنبه های تست Compose مفید باشد.
Codelab
برای کسب اطلاعات بیشتر، آزمایشگاه کدنویسی Jetpack Compose Testing را امتحان کنید.
نمونه ها
{% کلمه به کلمه %}
{% آخر کلمه %} برای شما توصیه می شود
{% کلمه به کلمه %} {% آخر کلمه %}
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-08-21 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-08-21 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Test your Compose layout\n\nTest your app's UI to verify that behavior of your Compose code is\ncorrect. This lets you catch errors early and improve the quality of your app.\n\nCompose provides a set of testing APIs to find elements, verify their\nattributes, and perform user actions. The APIs also include advanced features\nsuch as time manipulation. Use these APIs to create robust tests that verify\nyour app's behavior.\n| **Important:** For more on testing Android apps in general, including testing `View` elements, see the [general testing section](/training/testing). A good place to start is the [Fundamentals of testing Android apps](/training/testing/fundamentals) guide.\n\nViews\n-----\n\nIf you are working with views instead of Compose, see the general [Test apps on\nAndroid](/training/testing) section.\n\nIn particular, a good place to start is the [Automate UI tests](/training/testing/ui-tests) guide. It\nlays out how you can automate tests that run on-device, including when using\nviews.\n\nKey Concepts\n------------\n\nThe following are some key concepts for testing your Compose code:\n\n- **[Semantics](/develop/ui/compose/testing/semantics)**: Semantics give meaning to your UI, allowing tests to interact with specific elements.\n- **[Testing APIs](/develop/ui/compose/testing/apis)**: Testing APIs let you find elements, verify their attributes, and perform user actions.\n- **[Synchronization](/develop/ui/compose/testing/synchronization)**: Synchronization verifies that tests wait for the UI to be idle before performing actions or making assertions.\n- **[Interoperability](/develop/ui/compose/testing/interoperability)**: Interoperability enables tests to work with both Compose and View-based elements in the same app.\n\nTesting cheatsheet\n------------------\n\nSee the [testing cheatsheet](/develop/ui/compose/testing/testing-cheatsheet) for an overview of all the key topics you should\nlearn about testing in Compose.\n\nSetup\n-----\n\nSet up your app to let you test compose code.\n\nFirst, add the following dependencies to the `build.gradle` file of the module\ncontaining your UI tests: \n\n // Test rules and transitive dependencies:\n androidTestImplementation(\"androidx.compose.ui:ui-test-junit4:$compose_version\")\n // Needed for createComposeRule(), but not for createAndroidComposeRule\u003cYourActivity\u003e():\n debugImplementation(\"androidx.compose.ui:ui-test-manifest:$compose_version\")\n\nThis module includes a [`ComposeTestRule`](/reference/kotlin/androidx/compose/ui/test/junit4/ComposeTestRule) and an implementation for Android\ncalled [`AndroidComposeTestRule`](/reference/kotlin/androidx/compose/ui/test/junit4/AndroidComposeTestRule). Through this rule you can set Compose\ncontent or access the activity. You construct the rules using factory functions,\neither [`createComposeRule`](/reference/kotlin/androidx/compose/ui/test/junit4/package-summary#createComposeRule()) or, if you need access to an activity,\n[`createAndroidComposeRule`](/reference/kotlin/androidx/compose/ui/test/junit4/package-summary#createAndroidComposeRule()). A typical UI test for Compose looks like this: \n\n // file: app/src/androidTest/java/com/package/MyComposeTest.kt\n\n class MyComposeTest {\n\n @get:Rule val composeTestRule = createComposeRule()\n // use createAndroidComposeRule\u003cYourActivity\u003e() if you need access to\n // an activity\n\n @Test\n fun myTest() {\n // Start the app\n composeTestRule.setContent {\n MyAppTheme {\n MainScreen(uiState = fakeUiState, /*...*/)\n }\n }\n\n composeTestRule.onNodeWithText(\"Continue\").performClick()\n\n composeTestRule.onNodeWithText(\"Welcome\").assertIsDisplayed()\n }\n }\n\nAdditional Resources\n--------------------\n\n- **[Test apps on Android](/training/testing)**: The main Android testing landing page provides a broader view of testing fundamentals and techniques.\n- **[Fundamentals of testing](/training/testing/fundamentals):** Learn more about the core concepts behind testing an Android app.\n- **[Local tests](/training/testing/local-tests):** You can run some tests locally, on your own workstation.\n- **[Instrumented tests](/training/testing/instrumented-tests):** It is good practice to also run instrumented tests. That is, tests that run directly on-device.\n- **[Continuous integration](/training/testing/continuous-integration):** Continuous integration lets you integrate your tests into your deployment pipeline.\n- **[Test different screen sizes](/training/testing/different-screens):** With some many devices available to users, you should test for different screen sizes.\n- **[Espresso](/training/testing/espresso)**: While intended for View-based UIs, Espresso knowledge can still be helpful for some aspects of Compose testing.\n\nCodelab\n-------\n\nTo learn more, try the [Jetpack Compose Testing codelab](/codelabs/jetpack-compose-testing).\n\n### Samples\n\nRecommended for you\n-------------------\n\n- Note: link text is displayed when JavaScript is off\n- [Semantics in Compose](/develop/ui/compose/semantics)\n- [Window insets in Compose](/develop/ui/compose/layouts/insets)\n- [Other considerations](/develop/ui/compose/migrate/other-considerations)"]]