AndroidX Test Espresso 3.1.1、Runner 1.1.1、Rule 1.1.1、Monitor 1.1.1 AndroidTestOrchestrator 1.1.1、Core 1.1.0、Truth 1.1.0、JUnit 1.1.0 (2018-12-13)
這是 AndroidX Test 1.1.0 的穩定版本
- 核心
- 允許 ActivityScenario 支援啟動其他活動的活動
AndroidX Test Espresso 3.1.1-beta01、Runner 1.1.1-beta01、Rule 1.1.1-beta01、Monitor 1.1.1-beta01 AndroidTestOrchestrator 1.1.1-beta01、Core 1.1.0-beta01 Truth 1.1.0-beta01 Truth 1.1.0-beta01
- 核心
- 提供全新的 Core-ktx Kotlin 擴充功能構件!其中包括適用於 Kotlin 的 ActivityScenario.launchActivity API
- 全新的 ActivityScenario API,用於啟動具有自訂意圖的活動
- 全新的 ActivityScenario API,用於接收 Activity 結果
- 允許關閉 ActivityScenario
- Espresso
- 修改 withResourceNameMatcher 和 HumanReadables,使其與 API 28 相容
- 更新 ReplaceTextAction 的說明,以加入 stringToBeSet
- 支援在 Robolectric 的已暫停循環器模式下使用 Espresso。
- JUnit
- 全新的 ActivityScenarioRule API,用於在測試的設定和卸除作業中自動啟動及關閉 Activity
- 提供全新的 junit-ktx kotlin 擴充功能構件!其中包括適用於 Kotlin 的 ActivityContextRule API
- Runner
- 讓 -e 套件和 -e testFile 在接收套件時呈現一致的行為
- Truth
- 新增 bool、parcelable 和 parcelableAsType BundleSubject API
AndroidX Test Espresso 3.1.0、Runner 1.1.0、Rule 1.1.0、Monitor 1.1.0 AndroidTestOrchestrator 1.1.0、Core 1.0.0 Truth 1.0.0、JUnit 1.0.0 (2018-10-24)
- 全部
- 將 minSdkVersion 設為 14,並將 targetSdkVersion 設為 28
- Espresso
- 修正 withContentDescription,以便與非字串類型搭配運作
- 新增在 Robolectric 上使用 Espresso 的支援機制
- 問題 72798625:在啟用 textAllCaps 的情況下,Espresso ViewMatchers.withText 無法正常運作
- 新增對插入動作事件序列的支援
- Intents
- 新增 Beta 版 API 以擷取意圖清單,專為與新的 Truth 斷言搭配使用
- Runner
- 新增對免安裝應用程式的支援
- 淘汰 androidx.test.runner.AndroidJUnit4,並以 androidx.test.ext.junit.runners.AndroidJUnit4 取代
- 監控
- 淘汰 androidx.test.InstrumentationRegistry,並以 androidx.test.platform.app.InstrumentationRegistry 和 androidx.test.core.app.ApplicationProvider 取代
- AndroidTestOrchestrator
- 只有在同時傳遞「coverage」和「coverageFilePath」引數時,才啟用 Orchestrator 涵蓋率處理機制
- 只有在設定了 -debug ,但不列出 ATO 測試案例時,才等待偵錯工具。新增用於對 Orchestrator 本身進行偵錯的全新 orchestratorDebug 標記
- 核心
- 提供全新的構件!其中包括全新的 API,可同時支援本機與裝置端針對下列項目的測試作業:
- 擷取背景資訊:ApplicationProvider
- 控管活動生命週期:ActivityScenario (Beta 版)
- 適用於 MotionEvent 和 PackageInfo 的建構工具
- Parceables 公用程式類別
- 提供全新的構件!其中包括全新的 API,可同時支援本機與裝置端針對下列項目的測試作業:
- Truth
- 提供全新的構件!其中包括 Notification、Intent、Bundle、Parcelable 和 MotionEvent 的 Truth 自訂主體
- JUnit
- 提供全新的構件!其中包括支援本機與裝置端測試的 JUnit Runner 類別 androidx.test.ext.junit.runners.AndroidJUnit4。
Espresso 3.0.2-beta1、Runner 1.0.2-beta1、Rule 1.0.2-beta1、Monitor 1.0.2-beta1、AndroidTestOrchestrator 1.0.2-beta1 (2018-04-16)
- Espresso
- 破壞性 API 變更:
- 我們發現在問題 64062890 中發現,我們在公用 API 中使用了 Guava Optional。這對我們來說是相當嚴重的監管。因此,這個版本有破壞性的公用 API 變更以解決這個問題。我們在 Guava Optional 類別周圍導入了醜陋的包裝函式,名為 EspressoOptional,其位於「android.support.test.espresso.util」命名空間下。使用外洩的 Guava Optional API 開發人員需要在更新到此新版本時變更匯入項目和參考資料,以便使用 EspressoOptional。不便之處,敬請見諒。
- onView() 和 onData() API 現已標示為 @CheckReturnValue 以防止發生錯誤
- 已修正 espresso-core POM 檔案以不提取「規則」依附元件,而是讓 espresso-intents POM 提取。這應該是開發人員的 NoOp 變更,因為 Eespresso 意圖不能在沒有 espresso-core 的情況下使用。
- 問題65486414:Espresso 缺少 Guava 依附元件
- 問題65576174:Espresso IdlingResourceRegistry.sync 導致第二次測試失敗
- 問題 65568629:Espresso.onIdle 未使用 IdlingRegistry
- 問題69333598:espresso3.0.1 與 Android 程式庫模組中的 play-services-auth:11.6.0 不相容。
- 問題 64062890:由 AdapterViewProtocol 介面顯示的內部選用類型
- 問題64091847:Espresso 3.0.0「不應」依附於測試執行器
- 問題73722050:espresso-contrib 3.0.2-alpha1 套件 android.arch.{lifecycle/core}類別
- 破壞性 API 變更:
- Espresso-remote
- 這是全新的構件。我們區隔了 Espresso 的所有多程序功能,但與 Espresso 核心構件不同。這種方式比較簡潔,且應該能大幅減少 espresso-core 的整體大小和方法數量。
- Runner
- 規則
- 生命週期變更後,請務必釋出受測試活動的參照。在測試期間,現在可以使用從 #getActivity() 取得的參照直接操控活動。如果活動完成並重新啟動,#getActivity() 傳回的參照將一律指向 Activity 的當前執行個體。
- 問題 64389280:GrantPermissionRule 未提供 WRITE_EXTERNAL_STORAGE
- 問題 37065965:ActivityTestRule 在螢幕方向變更後外洩活動
- 問題 75254050:ActivityTestRule不會在設定變更期間更新活動執行個體
- 問題 64464625:無法在活動的方法 Finish() 中處理 UI
- AndroidTestOrchestrator
- 傳送
-e coverage true -e coverageFilePath /sdcard/foo/旗標即可在指定位置產生涵蓋率檔案 (應用程式必須具備寫入特定位置的權限)。涵蓋率檔案命名慣例現在如下所示:com.foo.Class#method1.ec。請注意,只有在隔離模式中執行時,系統才能使用這項功能。而且無法與 AndroidJUnitRunner 的coverageFile旗標搭配使用。因為產生的涵蓋範圍檔案會互相覆寫。 - 如果您希望自動化調度管理工具在測試叫用之間執行
pm clear context.getPackageName()和pm clear targetContext.getPackageName()指令,請傳遞-e clearPackageData標記。請注意,明確指令中的結構定義是測試結構定義的應用程式。 - 已修正 - 執行空白測試時 (aka.,目標中沒有 @Test),測試結果與舊版模式不同。
- 問題72758547:測試 Orchestrator 導致 Jacoco 涵蓋率資料不完整,只有一個測試執行資料
- 問題67916042:Android Test Orchestrator:由於 OutOfMemory,在程序當機時停止執行
- 問題 77752735: Orchestrator 因交易 TooLargeException 而異常終止
- 問題77549481:測試 Orchestrator 應在每次測試後執行「pm clear」
- 傳送
Espresso 3.0.2-alpha1、Runner 1.0.2-alpha1、Rule 1.0.2-alpha1、AndroidTestOrchestrator 1.0.2-alpha1 (2017-12-05)
濃縮咖啡
Intents現在有可呼叫的回應,允許測試在擷取觸發的意圖後執行,但在傳回Instrumentation.ActivityResult物件之前。
執行器
分割監控 Maven 構件
com.android.support.test:monitor:<version>,適用於需要MonitoringInstrumentation但未執行測試和 JUnit 功能的使用者。如果您使用
com.android.support.test:runner:<version>,則一切都會正常運作,因為 Gradle 會自動提取monitor模組做為runner模組的依附元件。已新增旗標
newRunListenerOrderMode。如果設為true,使用者定義的事件監聽器會在預設事件監聽器之前執行。(我們預期這個行為最終將成為預設選項)。問題65828576:在加上
@Ignore(獨立執行未測試或 JUnit 功能) 註解的類別中執行測試時,TestRequestBuilder會當機。
AndroidTestOrchestrator
- 現在可使用與非自動化調度管理工具
AndroidJUnitRunner相同的方式處理空白測試。 - Orchestrator 現在可以處理來自
AndroidJUnitRunner的大型標準輸出。
- 現在可使用與非自動化調度管理工具
Espresso 3.0.1、Runner 1.0.1、Rule 1.0.1、AndroidTestOrchestrator 1.0.1 (2017-08-28)
濃縮咖啡
- 新增
IdlingPolicy選項,在步驟偵錯工具附加至 VM 時隱藏onTimeout()。 - 問題64024656、64247586 和 64525881:除非使用者透過加入
-e類別執行器引數來載入特定類別,否則請勿回報失敗類別載入失敗的問題。 - 問題64877246:在來源 JAR 檔案中新增缺少的類別。
- 新增
執行器
- 簡化
ShardingFilter邏輯。 - 問題65025743:
@RequiresDevice篩選器現在支援 FTL 模擬器。
- 簡化
AndroidTestOrchestrator
- 請勿重複回報失敗。如果測試程序在失敗後異常終止,現在只會回報一次失敗。
- 已修正 Orchestrator 的 Javadoc。
- 現在如果遠端程序異常終止,測試會將測試標示為錯過。
- 現在可處理已忽略的測試案例。
- 現在從頁尾排除已忽略的測試案例以符合舊版結果。
- 修正執行階段權限問題。在 Android 7.0 (API 級別 24) 以上版本中,測試報表現在會寫入 SD 卡。
Espresso 3.0.0、Runner 1.0.0、Rule 1.0.0、AndroidTestOrchestrator 1.0.0 (2017-07-25、公告)
破壞性變更
- 所有構件
- 停止支援低於 15 的 API 級別;不過,最低 SDK 仍指向 API 級別 9,讓使用者有時間升級
- Espresso
- 淘汰的
android.support.test.espresso.contrib.CountingIdlingResource類別已遭刪除,並移至android.support.test.espresso.idling.CountingIdlingResource - Guava 現已淘汰到不同的「內部」命名空間;如果您意外透過 Espresso 命名空間使用 Guava API,可能會看到服務中斷
- 移除對陰影 Guava 的任何參照 (
.core.deps.guava.) - 將支援資料庫升級至 25.4.0 以上版本
- 移除對陰影 Guava 的任何參照 (
- 淘汰的
已知問題
- AndroidTestOrchestrator
- 目前不支援
-e numShards和-e shardIndex執行器引數 - 目前不支援參數化測試
- 目前不支援
新功能
- Espresso
- 新的 Multiprocess Espresso API 26 支援
espresso-core和espresso-web,但「不支援」espresso-contrib - 全新輕量
IdlingRegistryAPI- 作為
com.android.support.test.espresso:espresso-idling-resource:3.0.0發布 - 淘汰的方法:
- 作為
- 新增可協助同步處理
Executors的新 API- 新的 Maven 構件:
com.android.support.test.espresso.idling:idling-concurrent:3.0.0 - 包含
IdlingScheduledThreadPoolExecutor和IdlingThreadPoolExecutor類別
- 新的 Maven 構件:
- 新的 API 可協助同步處理網路要求和回應。
- 新的 Maven 構件:
com.android.support.test.espresso.idling:idling-net:3.0.0 - 包含
UriIdlingResource類別
- 新的 Maven 構件:
- 新增
espresso-core檢視比對器:hasBackground()與View物件的背景可繪製資源相符hasTextColor()與TextView物件的顏色相符
- 新的檢視畫面動作方法:
- 增強
scrollTo()檢視動作,以便與ListView的子系搭配使用 repeatedlyUntil()- 對檢視畫面執行指定的ViewAction,直到檢視畫面與所需ViewMatchers相符為止
- 增強
- 新的 Espresso 方法:
pressBackUnconditionally()- 與pressBack()類似,但在 Espresso 瀏覽時不會擲回例外狀況noActivity()- 在執行ViewAction或ViewAssertion之前,不需要等待活動onIdle()- 循環主執行緒,直到應用程式閒置為止onIdle(Callable<T>)- 與onIdle()相同,但需要在應用程式閒置後執行額外的Callable做為參數
webScrollIntoView()- 新的espresso-webAtom,可讓您在WebView內捲動
- 新的 Multiprocess Espresso API 26 支援
- Runner
-
InterceptingActivityFactory和SingleActivityFactory:提供一項功能,可單獨測試startService()和sendBroadcast()等方法,獨立測試活動。 -
新增支援將 JUnitParams 與
AndroidJUnitRunner搭配使用的功能 -
開始在核心測試執行器層級處理
@UiThreadTest並淘汰@UiThreadTestRule,這樣就能直接對帶有@Before和@After註解的方法使用@UiThreadTest註解 -
@SdkSupress註解現在支援maxSdkVersion值 (問題 37067792) -
-e classLoader– 提供使用執行器引數傳遞類別載入器的功能 -
-e filter:新增對使用執行器引數指定的自訂 JUnit 篩選器的支援 -
-e runnerBuilder– 允許開發人員自行提供RunnerBuilder實作項目,藉此判斷是否能在特定類別上執行,以及如何執行
-
- 規則
ProviderTestRule- 用於測試ContentProvider物件的新 APIgetActivityResult()和ActivityResultMatchers:新的 API,可擷取名為setResult()的活動的活動結果
- AndroidTestOrchestrator
- Android Test Orchestrator 提供了新的收集和執行測試方式,尤其著重於修正和隔離問題。Orchestrator 是獨立的檢測程序,系統會為每個測試產生一個檢測執行器程序,並收集結果。
- 應用程式當機問題會移除執行器檢測作業,而非自動化調度管理工具,讓測試套件繼續
- 需要安裝 Orchestrator APK –
'com.android.support.test:orchestrator:1.0.0' - 1.0 版僅有指令列介面;已規劃與 Android Studio 和 Firebase Test Labs 的整合
- Android Test Orchestrator 提供了新的收集和執行測試方式,尤其著重於修正和隔離問題。Orchestrator 是獨立的檢測程序,系統會為每個測試產生一個檢測執行器程序,並收集結果。
修正錯誤
- Espresso
- 改善根層級檢視畫面的同步處理作業,大幅減少出現延遲情形
- 修正「
IdlingResourceRegistry」的損毀問題 - 更有效地同步處理
IdlingResource物件 - 問題 37132680:Espresso 在執行下一個動作之前並未等待對話方塊建立完成
- 問題 37103280:Espresso 應運送 ProGuard 消費者規則,讓消費者不必新增規則
- 問題 37094726:Espresso Intent 包含不必要的應用程式標籤
- 問題 37093953:Espresso:沒有可用的空值/空白錯誤文字檢查
- 問題 37071776:
espresso-core嵌入 Guava 的.pom檔案 - 問題 37062612:
release()中的 NPE - 問題 37063389:將 Guava 和
espresso-web做為androidTest依附元件無法編譯 - 問題 37070533:在 Android 設計支援資料庫中新增對
NavigationView的支援
- Runner
-
修正將
@UiThreadTest與@Test(timeout = 123)搭配使用的功能 - 已修正
-e notClass執行器引數 - 已修正
-e log,以便支援 JUnit3 和 JUnit4 測試套件,以及Parameterized和Enclosed執行器 - 問題 37663530:等待所有活動都完成,然後才完成每個測試方法前後的活動
- 問題 37132680:Espresso 在執行下一個動作之前不會等待對話方塊建立完成
-
問題 37123213:在 x86_64 ABI 中忽略
@RequiresDevice -
問題 37101485:部分資訊清單提供的
AndroidJUnitRunner引數 (例如測試大小、註解和偵錯) 遭到忽略 - 問題 37082857:在靜態物件上,Espresso 半平行測試執行失敗
-
問題 37063396:內容未使用
ProviderTestCase2初始化 (原因為NullPointerException)
-
修正將
- 規則
- 修正
ActivityTestRule生命週期,以統合一般和延遲ActivityTestRule初始化的行為 - 問題 37079943:修正
ServiceTestRule以允許重新繫結 - 問題 37109342:新增
getActivityResult()和ActivityResultMatchers
- 修正
- UiAutomator
setUiAutomationFlags()可與UiAutomation.FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES搭配使用:這可讓UiAutomator在執行其他無障礙服務期間使用- 問題37082813:
setText()如果 API 級別為 19 以下,EditText物件會擲回NullPointerException
其他重要異動
- 二進位檔現已透過 Google Maven 發布
- 縮減
espresso-core和espresso-webJAR 檔案的大小 - 內嵌依附元件現已套用 ProGuard - 全部
.aar個檔案現在都會包含 ProGuard 規則 - 將
proguard_library.cfg個檔案新增至已發布的構件 Tapper介面有新版sendTap()可實作
外部貢獻
- Espresso
- Runner
- 規則
Espresso 2.2.2,執行器/規則 0.5 (2016-02-22,靜音版本)
新功能
- espresso
- 問題 194253:在 Android 支援設計資料庫中新增 NavigationView 的支援
- 針對已啟用的動畫和轉場效果新增檢查功能
- 新的
ViewMatcherAPI:withResourceName()
修正錯誤
- espresso
- 問題 195331:espresso-core 嵌入 Guava 的 Pom 檔案
- 將計數閒置資源移出 espresso-contrib
- 規則
- 問題 187249:
Intents.release()中的 NPE
- 問題 187249:
- Runner
- 問題 196066:
AndroidJUnitRunner中的-e log true引數不會略過實際測試 - 等待
onCreate()執行器的偵錯工具 - 已將所有支援的測試註解移出平台並進入 ATSL
- 已移除沒有 JSBridge 的堆疊追蹤傾印
- 已修正
AndroidAnnotatedBuilder
- 問題 196066:
其他重要異動
ActivityTestRule、UiThreadTestRule、IntentsTestRule和ServiceTestRule已通過測試階段- 新增程式碼樣式設定檔,以便採用統一的程式碼格式
Espresso 2.2.1,執行器/規則 0.4 (2015-09-15)
新功能
- 規則
- 新增
IntentsTestRule建構函式,與ActivityTestRule完全相容
- 新增
- Runner
- 針對 API 級別 15 及以下級別新增特殊的 Multidex 安裝案例
- 在類別和套件中新增排除篩選器:
- 執行所有測試,但特定類別除外:
adb shell am instrument -w -e notClass com.android.foo.FooTest - 僅執行單一測試:
adb shell am instrument -w -e notClass com.android.foo.FooTest#testFoo - 執行特定套件以外的所有測試:
adb shell am instrument -w -e notPackage com.android.foo.bar
- 執行所有測試,但特定類別除外:
外部貢獻
- espresso
修正錯誤
- espresso
ViewActions.closeSoftKeyboard()現在會確保螢幕鍵盤已完全消失- 已修正 Espresso 的
Espresso.pressBack()方法在 API 級別 21 及以上級別的同步處理問題 - 已修正 API 級別 23 鍵盤關閉動畫的同步處理作業
- 規則
- 已修正 API 級別 23 中的
ServiceTestRule,一律使用明確的Intent呼叫startService()
- 已修正 API 級別 23 中的
- Runner
- 已修正損毀的 Gradle
JaCoCo支援 - 修正故障的無效測試資料分割支援
- 修正
JUnit3樣式測試逾時後測試執行器中的不一致狀態
- 已修正損毀的 Gradle
其他重要異動
- Javadoc 修正和錯誤訊息改善
- 忽略
suite()方法,且使用方法篩選器時,不會忽略 init 錯誤
Espresso 2.2 / ATSL 0.3 (2015-06-09)
新功能
- espresso-web 2.2
- 新的
WebView支援
- 新的
- espresso-core 2.2
- 已遷移至使用 Dagger v2
- 已遷移至使用 hamcrest v1.3
- espresso-contrib 2.2
- 無障礙檢查
DrawerActions重力支援
- 規則 0.3
DisableOnAndroidDebug項規則
- Runner 0.3
- 從 JUnit v4.10 升級至 JUnit v4.12
- 已遷移至使用 Hamcrest v1.3
修正錯誤
- 已修正
DrawerActions外洩ParentListener - 假設失敗現在被視為忽略測試,而不是失敗測試
- 修正透過
ExecutorService造成MonitoringInstrumentation外洩活動例項的問題 - 修正孤立活動停在停止階段的問題
- 如果未產生任何捲動事件,請更新
Until.scrollFinished()以傳回 true。防範UiObject2#setText()中的潛在 NPE。
Espresso 2.1、Test Runner/Rules 0.2 和 UIAutomator 2.1.0 (2015-04-21)
破壞性變更
- 測試執行器成果分為兩個,名稱已從
com.android.support.test:testing-support-lib:0.1變更為com.android.support.test:runner:0.2和com.android.support.test:rules:0.2。
新功能
- espresso-intents:這個 Mockito 式 API 可讓測試作者驗證及虛設傳出意圖,以便啟用密封跨活動測試功能
IntentsTestRule:擴充ActivityTestRule、初始化及發布功能性 UI 測試中的 Espresso-Intent
- espresso-core
ViewActions:新增了在執行動作之前可執行全域斷言的功能。對於以 Espresso 為基礎建構的其他架構,這很實用,有助於在執行現有 Espresso 測試套件時驗證檢視區塊階層的狀態ViewMatchers.withContentDescription()resId超載
- 規則
ActivityTestRule:這項規則針對單一活動提供功能測試UiThreadRule和UiThreadTest註解:這項規則可讓以UiThreadTest註解的測試方法在應用程式的主要執行緒 (或 UI 執行緒) 上執行ServiceTestRule:這項規則提供服務的功能測試
- Runner
ApplicationLifecycleCallback:監控應用程式生命週期事件的回呼- 您現在也可以使用
<meta-data>標記在 Android 資訊清單檔案中指定所有執行器引數
- UIAutomator
UiDevice.dumpWindowHierarchy()現在可接受File或OutputStream
修正錯誤
- espresso
- 如果找不到資料欄,遊標比對器現在會傳回
false,讓 Hamcrest 繼續處理下一個遊標 - 包含
PreferenceMatcherswithTitle的NullPointerException已不存在 - 取消註冊閒置資源後,Espresso 就不會再認為我們擁有忙碌的閒置資源
- 更新了 Espresso Contrib 使用的 Support Annotations 版本
- 如果找不到資料欄,遊標比對器現在會傳回
- Runner
AndroidJUnit4現在會略過假設失敗的測試
- UIAutomator
- 執行看守工具來避免
StaleObjectException
- 執行看守工具來避免
其他重要異動
- 無法以非拉丁字母串鍵入文字時新增更好的錯誤訊息
UIAutomator 2.0 (2015 年 3 月 12 日)
UI Automator 現在以 Android Instrumentation 為基礎,可使用 ./gradlew connectedCheck 指令建構及執行測試。
Espresso 2.0 版,測試執行器 0.1 (發布日期:2014-12-19)
破壞性變更
- Espresso 已移至新的命名空間,從
android.support.test.espresso移至android.support.test.espresso - Espresso 構件已重新命名
espresso-1.1.jar現在是espresso-core-release-2.0.jarIdlingResource介面已移至獨立的程式庫:espresso-idling-resource-release-2.0.jarCountingIdlingResource現在位於espresso-contrib-release-2.0.jar(一如既往)
- 選用 (guava 依附元件) 已從公用 API 中移除,以便重新封裝 guava 依附元件,並避免 DEX 衝突 (這是開發的主要問題來源)。受影響的方法包括:
ViewAssertion.check()HumanReadables.getViewHierarchyErrorMessage()
新功能
- 動作
ViewActionsreplaceText()openLink()- 向上與向下滑動
- espresso-contrib
RecyclerViewActions:處理與RecyclerViews的互動PickerActions:處理與Date和TimePicks 的互動
- 比對器
RootMatchersisPlatformPopup()
ViewMatchersisJavascriptEnabled()withSpinnerText()withHint()isSelected()hasLinks()
LayoutMatchers:用於 i18n 相關版面配置測試的比對器CursorMatchers:Cursor物件的比對器集合
- 斷言
PositionAssertions,包括isLeftOf()和isAbove():ViewAssertions的 Colleciton,用於檢查螢幕上元素的相對位置LayoutAssertions:i18n 相關版面配置測試的斷言
- 測試應用程式:許多新的範例活動/測試
- 其他
Espresso.unregisterIdlingResources()和Espresso.getIdlingResources():提供更多與IdlingResources合作的彈性ViewInteraction.withFailureHandler():允許覆寫onView()中的失敗處理常式onData()支援由CursorAdapters支援的AdapterViews
修正錯誤
ViewMatchers.isDisplayed()會比對佔據整個螢幕畫面的檢視畫面,但畫面不再小於 90%- 對
DrawerActions.openDrawer()執行滑動動作呼叫不會再產生IdlingResourceTimeoutException
其他重要異動
- 已從使用 Maven 建構切換至 Gradle
- 將 Espresso 依附元件 (Guava、Dagger、Hamcrest) 移出,以免發生 DEX 衝突
- 已變更,以便在註冊及取消註冊閒置資源時傳回成功或失敗
- Lollipop 支援:將
message.recycle()置於介面後方,以因應版本相關變更 - 已將目標 SDK 級別切換為 21 - 主要會影響測試應用程式
1.1 版 (發布日期:2014-01-08)
Espresso
- 新的
swipeLeft和swipeRight的ViewActions - 多視窗模式支援:這項進階功能可讓您選擇 Espresso 應在哪個目標視窗執行作業
- 改善
TypeTextAction:允許在預先聚焦的檢視畫面中輸入文字,更輕鬆地附加文字 - 修正多項錯誤
Espresso Contrib 程式庫
- 這個新程式庫包含補充 Espresso 的功能,但不屬於核心程式庫的功能
- 在
DrawerLayout上運作的全新DrawerActions:具有 Android 支援資料庫的依附元件,因此我們會將其保留在核心 Espresso 程式庫之外
測試範例
- 這些測試已重新定位到與測試應用程式相同的套件中
- 已修正 Maven POM 以移除重複的 Guava 依附元件,因此
mvn install應可正常運作