رابط کاربری برنامه خود را آزمایش کنید تا مطمئن شوید که رفتار کد Compose شما صحیح است. این به شما امکان میدهد خطاها را زود تشخیص داده و کیفیت برنامه خود را بهبود بخشید.
Compose مجموعهای از APIهای تست را برای یافتن عناصر، تأیید ویژگیهای آنها و انجام اقدامات کاربر فراهم میکند. APIها همچنین شامل ویژگیهای پیشرفتهای مانند دستکاری زمان هستند. از این APIها برای ایجاد تستهای قوی که رفتار برنامه شما را تأیید میکنند، استفاده کنید.
بازدیدها
اگر به جای Compose با viewها کار میکنید، به بخش عمومی Test apps on Android مراجعه کنید.
به طور خاص، راهنمای خودکارسازی تستهای رابط کاربری (Automate UI tests) جای خوبی برای شروع است. این راهنما توضیح میدهد که چگونه میتوانید تستهایی را که روی دستگاه اجرا میشوند، از جمله هنگام استفاده از نماها، خودکارسازی کنید.
مفاهیم کلیدی
در زیر چند مفهوم کلیدی برای آزمایش کد Compose شما آورده شده است:
- معناشناسی : معناشناسی به رابط کاربری شما معنا میدهد و به تستها اجازه میدهد تا با عناصر خاص تعامل داشته باشند.
- تست APIها : تست APIها به شما امکان میدهند عناصر را پیدا کنید، ویژگیهای آنها را تأیید کنید و اقدامات کاربر را انجام دهید.
- همگامسازی : همگامسازی تأیید میکند که تستها قبل از انجام اقدامات یا ایجاد ادعاها، منتظر میمانند تا رابط کاربری بیکار شود.
- قابلیت همکاری : قابلیت همکاری، تستها را قادر میسازد تا با هر دو عنصر 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 را تنظیم کنید یا به activity دسترسی داشته باشید. شما قوانین را با استفاده از توابع factory، یا createComposeRule یا اگر به دسترسی به activity نیاز دارید، 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()
}
}
منابع اضافی
- تست برنامهها در اندروید : صفحه اصلی تست اندروید، نمای وسیعتری از اصول و تکنیکهای تست ارائه میدهد.
- اصول اولیه تست : درباره مفاهیم اصلی پشت تست یک برنامه اندروید بیشتر بدانید.
- تستهای محلی : شما میتوانید برخی از تستها را به صورت محلی، روی ایستگاه کاری خودتان اجرا کنید.
- تستهای ابزاری : اجرای تستهای ابزاری نیز روش خوبی است. یعنی تستهایی که مستقیماً روی دستگاه اجرا میشوند.
- ادغام مداوم : ادغام مداوم به شما امکان میدهد تستهای خود را در خط تولید خود ادغام کنید.
- آزمایش اندازههای مختلف صفحه نمایش : با توجه به اینکه دستگاههای زیادی در دسترس کاربران است، باید اندازههای مختلف صفحه نمایش را آزمایش کنید.
- Espresso : اگرچه برای رابطهای کاربری مبتنی بر View در نظر گرفته شده است، اما دانش Espresso همچنان میتواند برای برخی از جنبههای تست Compose مفید باشد.
کدلب
برای کسب اطلاعات بیشتر، کد آزمایشگاه تست نوشتن Jetpack را امتحان کنید.
نمونهها
برای شما توصیه میشود
- توجه: متن لینک زمانی نمایش داده میشود که جاوا اسکریپت غیرفعال باشد.
- معناشناسی در نوشتن
- درج پنجره در Compose
- ملاحظات دیگر