測試應用程式的 UI,確認 Compose 程式碼的行為是否正確。這可讓您及早發現錯誤,並改善應用程式品質。
Compose 提供一組測試 API,可用於找出元素、驗證其屬性,以及執行使用者動作。這些 API 也包含時間操控等進階功能。您可以利用這些 API 建立完善的測試,以便驗證應用程式行為。
View
如果您使用檢視區塊,而非 Compose,請參閱一般「在 Android 上測試應用程式」一節。
建議您先參閱「自動化 UI 測試」指南。本文說明如何自動執行在裝置上執行的測試,包括使用檢視畫面。
核心概念
以下是測試 Compose 程式碼的一些重要概念。
- 語意:Compose 測試會使用語意與 UI 互動,為 UI 的各個部分賦予意義,並與 UI 階層一同產生。
- 測試 API:Compose 提供測試 API,可用於尋找元素、對其狀態和屬性做出斷言,並執行動作來模擬使用者互動。
- 同步處理:根據預設,Compose 測試會自動與 UI 同步處理,在發出斷言或執行動作之前,先等待測試處於閒置狀態。
- 互通性:在混合型應用程式中,測試能與 Compose 和以 View 為基礎的元素完美互動,並與其他測試架構整合。
測試一覽表
請參閱測試一覽表,瞭解您應學習的所有關鍵主題,以便在 Compose 中進行測試。
設定
設定應用程式,以便測試 Compose 程式碼。
首先,請將下列依附元件新增至包含 UI 測試的模組的 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
的 Android 實作。透過這項規則,您可以設定撰寫內容或存取活動。您可使用工廠函式 createComposeRule
建立規則;如需存取活動,可使用 createAndroidComposeRule
。Compose 的一般 UI 測試如下所示:
// 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:雖然適用於以 View 為基礎的 UI,但 Espresso 知識仍有助於進行 Compose 測試的某些方面。
程式碼研究室
詳情請參閱 Jetpack Compose Testing 程式碼研究室。
範例
Android 16 Beta 版 1 隆重登場!瞭解 Android 16 中方向和可調整大小 API 的變更。 瞭解 CameraX 1.4.0 的新功能。 瞭解 Android XR SDK 開發人員預覽版的所有資訊。 瞭解最新的密碼金鑰、Android 16 的首個開發人員預覽版、Android Studio 中的 Gemini 更新,以及 Gemini API 競賽結果。 趕快收看 #TheAndroidShow:Android Studio 中的 Gemini 更新、更頻繁的 Android SDK 版本發布,以及更多內容! 在季度節目中,我們將從倫敦的 Droidcon 現場直播,揭露 Android Studio 推出以來 Gemini 的最大更新,並展示 Jetpack Compose 等內容。 瞭解如何使用 Gemini Nano 著手建構裝置端 AI 用途,現在只要透過 AICore 搭配 AI Edge SDK,即可體驗這項功能。 Android 15 正式發布至 Android 開放原始碼計畫 摺疊式裝置和穿戴式裝置的最新消息,以及 Gemini API 競賽的報名資訊 摺疊式裝置和穿戴式裝置的最新消息,以及 Gemini API 競賽的報名資訊 瞭解 Android 開發人員如何運用最新的 Android 功能打造優質的優質應用程式。 在上一篇 Google I/O 回顧文章中,我們特別介紹了 Google Play 的重大更新。 在第三次 Google I/O 回顧中,我們將介紹各種板型規格的 Compose,包括手機、平板電腦、Wear OS 和電視。 在 Google I/O 大會上,我們揭露了以 AI 為核心的 Android 願景。 在接下來的四週內,我們將回顧 Google I/O 大會上 Android 開發相關的重要公告,首先是協助您打造出色的應用程式。 Google I/O 大會的 15 個 Android 開發人員必知重點! Google I/O 將於明天開始,並於太平洋時間上午 10 點直播主題演講。我們很高興能與各位分享最新的 Android 更新、展示、程式碼研究室等內容! Gemini 版 Android Studio (舊稱 Studio Bot) 隨時待命! Android is back at Google I/O Tune in to #TheAndroidShow Join us on March 7 at 10AM PT for another episode of #TheAndroidShow! The First Developer Preview of Android 15 We released Gemini, our most capable AI model yet. Learn more about how we’re making it easier for you to start building Android apps that leverage generative AI. As we approach the end of 2023, I wanted to take a moment to reflect on all that we've accomplished together as a community, and send a huge *thank you* for all of your work!Android 16 的首個 Beta 版
深入瞭解「焦點週」:相機與媒體
隆重推出 Android XR
焦點週:深入瞭解密碼金鑰
#TheAndroidShow:立即觀看節目!
收看 #TheAndroidShow
焦點週:Android 的 AI 功能
Android 15
2024 年 8 月
2024 年 7 月
5 位開發人員如何使用 Android 打造出色的應用程式
I/O 焦點 - 遊戲
I/O 焦點:在各種板型規格下使用 Compose
I/O 焦點:在 Android 上使用 AI 進行建構
I/O 焦點 - 打造優質應用程式
2024 年 I/O 大會總結
在 Google I/O 大會上加入 Android 團隊
2024 年 4 月
March 2024
Watch the #TheAndroidShow
#TheAndroidShow Teaser
February 2024
A new foundation for AI on Android
December 2023
目前沒有任何建議。
建議登入 Google 帳戶。