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
- 全新輕量
IdlingRegistry
API- 作為
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-web
Atom,可讓您在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-web
JAR 檔案的大小 - 內嵌依附元件現已套用 ProGuard - 全部
.aar
個檔案現在都會包含 ProGuard 規則 - 將
proguard_library.cfg
個檔案新增至已發布的構件 Tapper
介面有新版sendTap()
可實作
外部貢獻
- Espresso
- Runner
- 規則
Espresso 2.2.2,執行器/規則 0.5 (2016-02-22,靜音版本)
新功能
- espresso
- 問題 194253:在 Android 支援設計資料庫中新增 NavigationView 的支援
- 針對已啟用的動畫和轉場效果新增檢查功能
- 新的
ViewMatcher
API: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 繼續處理下一個遊標 - 包含
PreferenceMatchers
withTitle
的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.jar
IdlingResource
介面已移至獨立的程式庫:espresso-idling-resource-release-2.0.jar
CountingIdlingResource
現在位於espresso-contrib-release-2.0.jar
(一如既往)
- 選用 (guava 依附元件) 已從公用 API 中移除,以便重新封裝 guava 依附元件,並避免 DEX 衝突 (這是開發的主要問題來源)。受影響的方法包括:
ViewAssertion.check()
HumanReadables.getViewHierarchyErrorMessage()
新功能
- 動作
ViewActions
replaceText()
openLink()
- 向上與向下滑動
- espresso-contrib
RecyclerViewActions
:處理與RecyclerViews
的互動PickerActions
:處理與Date
和Time
Picks 的互動
- 比對器
RootMatchers
isPlatformPopup()
ViewMatchers
isJavascriptEnabled()
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
應可正常運作