AndroidX Test 是一組 Jetpack 程式庫,可讓您執行測試 獎勵 Android 應用程式並提供一系列工具 測試。
舉例來說,AndroidX Test 會提供 JUnit4 規則來啟動活動, 在 JUnit4 測試中與其互動。它還包含 UI 測試架構,例如 例如 Espresso、UI Automator 和 Robolectric 模擬器
新增 AndroidX 測試程式庫
如要使用 AndroidX Test,您必須修改應用程式專案的依附元件 開發和測試環境
新增 Gradle 依附元件
如要修改應用程式專案的依附元件,請完成下列步驟:
- 步驟 1:開啟 Gradle 模組的
build.gradle
檔案。 - 步驟 2:在存放區部分中,確認 Google 的 Maven 存放區會顯示:
allprojects {
repositories {
jcenter()
google()
}
}
- 步驟 3:為每個要使用的 AndroidX 測試套件新增套件
命名
依附元件區段舉例來說,如要新增
espresso-core
套件,請將 中的幾行程式碼:
Groovy
dependencies { ... androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVersion" }
Kotlin
dependencies { ... androidTestImplementation('androidx.test.espresso:espresso-core:$espressoVersion') }
以下是最常見的 AndroidX 測試依附元件:
Groovy
dependencies { // Core library androidTestImplementation "androidx.test:core:$androidXTestVersion0" // AndroidJUnitRunner and JUnit Rules androidTestImplementation "androidx.test:runner:$testRunnerVersion" androidTestImplementation "androidx.test:rules:$testRulesVersion" // Assertions androidTestImplementation "androidx.test.ext:junit:$testJunitVersion" androidTestImplementation "androidx.test.ext:truth:$truthVersion" // Espresso dependencies androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVersion" androidTestImplementation "androidx.test.espresso:espresso-contrib:$espressoVersion" androidTestImplementation "androidx.test.espresso:espresso-intents:$espressoVersion" androidTestImplementation "androidx.test.espresso:espresso-accessibility:$espressoVersion" androidTestImplementation "androidx.test.espresso:espresso-web:$espressoVersion" androidTestImplementation "androidx.test.espresso.idling:idling-concurrent:$espressoVersion" // The following Espresso dependency can be either "implementation", // or "androidTestImplementation", depending on whether you want the // dependency to appear on your APK’"s compile classpath or the test APK // classpath. androidTestImplementation "androidx.test.espresso:espresso-idling-resource:$espressoVersion" }
Kotlin
dependencies { // Core library androidTestImplementation("androidx.test:core:$androidXTestVersion") // AndroidJUnitRunner and JUnit Rules androidTestImplementation("androidx.test:runner:$testRunnerVersion") androidTestImplementation("androidx.test:rules:$testRulesVersion") // Assertions androidTestImplementation("androidx.test.ext:junit:$testJunitVersion") androidTestImplementation("androidx.test.ext:truth:$truthVersion") // Espresso dependencies androidTestImplementation( "androidx.test.espresso:espresso-core:$espressoVersion") androidTestImplementation( "androidx.test.espresso:espresso-contrib:$espressoVersion") androidTestImplementation( "androidx.test.espresso:espresso-intents:$espressoVersion") androidTestImplementation( "androidx.test.espresso:espresso-accessibility:$espressoVersion") androidTestImplementation( "androidx.test.espresso:espresso-web:$espressoVersion") androidTestImplementation( "androidx.test.espresso.idling:idling-concurrent:$espressoVersion") // The following Espresso dependency can be either "implementation", // or "androidTestImplementation", depending on whether you want the // dependency to appear on your APK"s compile classpath or the test APK // classpath. androidTestImplementation( "androidx.test.espresso:espresso-idling-resource:$espressoVersion") }
如需特定參考資料,請參閱套件索引或類別索引 有關這些程式庫的說明文件
使用已淘汰類別的專案
如果應用程式使用的測試仰賴已淘汰的 JUnit3 型 android.test
類別 (例如 InstrumentationTestCase
和 TestSuiteLoader
) 新增
在檔案的 android
區段中,加入下列程式碼:
android {
...
useLibrary 'android.test.runner'
useLibrary 'android.test.base'
useLibrary 'android.test.mock'
}
新增資訊清單宣告
如要執行使用已淘汰 JUnit3 型 android.test
類別的測試,請新增
加入測試應用程式資訊清單所需的 <uses-library>
元素。適用對象
舉例來說,如果您新增依附於 android.test.runner
程式庫的測試,請新增
請在應用程式的資訊清單中,加入下列元素:
<!-- You don't need to include android:required="false" if your app's
minSdkVersion is 28 or higher. -->
<uses-library android:name="android.test.runner"
android:required="false" />
如要判斷包含指定 JUnit 類別的程式庫,請參閱 以 JUnit 為基礎的程式庫。
使用已淘汰類別並指定 Android 9 或
高
只有在指定 Android 9 (API 級別 28) 時,才適用本節指南 或以上版本,且應用程式的最低 SDK 版本設為 Android 9。
android.test.runner
程式庫會以隱含的方式依附 android.test.base
和 android.test.mock
程式庫如果您的應用程式只使用
android.test.base
或 android.test.mock
,您可以將程式庫加入
也就是
<!-- For both of these declarations, you don't need to include
android:required="false" if your app's minSdkVersion is 28
or higher. -->
<uses-library android:name="android.test.base"
android:required="false" />
<uses-library android:name="android.test.mock"
android:required="false" />