安卓程式設計師:如何用Espresso測試UI介面
如果想學習使用Espresso測試Android應用程式UI,需要了解包括基礎知識,AdapterViews,RecyclerViews等方面的知識,本文將是一份不錯的教程。
作者寫了關於Espresso的基礎知識,以及如何設定和使用。介紹了一些編寫測試用例時可能需要的基本測試,如何測試不屬於預設視窗層次的檢視,同時測試AdapterViews&RecyclerViews。最後,介紹如何編寫自定義匹配器和失敗處理程式。
基本測試
先來看看可能需要寫的一些常見測試:
按照上面的模式,根據要求編寫測試用例:
在預設視窗層次結構之外測試檢視
可能有幾種情況需要測試不屬於預設視窗層次結構的檢視。例如,測試可能使用WindowManager呈現的檢視:
測試一個AdapterView
現在繼續進行AdapterView測試。為了測試AdapterView,Espresso提供了一個單獨的onData()入口,在對其本身或其子進行任何操作之前,首先對介面卡專案進行測試。如果要測試一個AdapterView,需要使用onData()方法而不是onView()方法。
可以在中找到可用的ObjectMatcher,DataOptions,ViewAction和ViewAssertion的完整列表。
下面是一個簡單的例子,找到一個匹配單詞"Espresso"的String型別列表項並對它執行click()事件:
下面的例子將找到具有內容"item content:10"的列表專案,並且在其具有id R.id.item_id的子檢視上執行點選事件:
測試一個RecyclerView
由於RecyclerView物件的行為與AdapterView物件的行為不同,所以不能使用onData()來測試RecyclerView物件。
如果要測試RecyclerView,需要新增espresso-contrib包依賴項。這個軟體包包含一個RecyclerViewActions的集合,可以使用它來滾動到位置或對這些專案執行操作。
要使用Espresso與RecyclerView進行互動,可以使用espresso-contrib軟體包(在app / build.gradle中新增"com.android.support.test.espresso:espresso-contrib:2.2.2"依賴項) RecyclerViewActions可用於滾動到位置或對專案執行操作。該集合包括以下RecylerViewActions:
·scrollTo() - 此RecyclerViewActions滾動到匹配的檢視。
·scrollToHolder() - 此RecyclerViewActions滾動到匹配的檢視持有者。
·scrollToPosition() - 此RecyclerViewActions滾動到一個特定的位置。
·actionOnHolderItem() - 此RecyclerViewActions在匹配的View Holder上執行View Action。
·actionOnItem() - 此RecyclerViewActions在匹配的View上執行View Action。
·actionOnItemAtPosition() - 此RecyclerViewActions在特定位置的檢視上執行ViewAction。
我們來看一個測試RecyclerView的例子:
上面的例子將首先找到ID為R.id.rv_espresso的RecyclerView,然後滾動到第五個位置並在該專案上執行一個單擊事件。
同樣,我們也可以使用其他的RecyclerViewActions。
現在看看如何測試一個自定義RecyclerView,例如ExpandableRecyclerView。考慮一下,當需要測試可展開檢視的子檢視的情況。
首先,編寫一個可以執行的自定義操作:
現在,在子檢視上執行這個操作:
現在來看看如何編寫和使用Custom Matcher和Custom Failure Handler。
Custom Matcher & FailureHandler
在編寫測試用例時,可能需要實現Custom Matcher或者Custom Failure Handler,因為在某些情況下,預設的處理器可能不足夠。
1.Custom Matcher
有些情況下,預設的可用匹配器可能是不夠的。在這種情況下,需要編寫我們自己的匹配器。考慮一個情況,當需要檢查EditText中的文字是否與正規表示式匹配時,由於沒有預設的匹配器做這個工作,所以需要程式設計師自己實現。
我們來看看如何編寫一個用於驗證模式的Custom Matcher:
使用這個匹配器:
2.Custom Failure Handler
有些情況下,我們可能想要處理一些Espresso丟擲的異常,並自定義一些實現,比如記錄一些可能更有意義的額外資料。
在已經寫了一個custom failure handler程式之後,我們需要這樣設定它:
這就是如何為不同的元件編寫基本的測試用例。作者希望這篇文章能夠激勵程式設計師為應用程式編寫測試用例。起初,這可能是困難的,但一旦掌握了它,將是非常有用的。
你認為這份教程怎麼樣呢?如果你有更好的想法,歡迎在評論區留言!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31077337/viewspace-2154063/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Android UI 測試指南之 EspressoAndroidUIEspresso
- UI設計師面試技巧UI面試
- 安卓小程式模擬定位測試安卓
- UI 設計之AB測試UI
- UI設計培訓分享:UI設計師如何準備面試?UI面試
- 程式設計師測試原則 - Kent Beck程式設計師
- 好程式設計師:Java程式設計師面試秘籍程式設計師Java面試
- 基於 appium 的安卓 UI 及多裝置相容測試工具APP安卓UI
- 月薪過萬的UI設計師都是怎麼設計介面的UI
- [譯] 使用 Espresso 和 Mockito 測試 MVPEspressoMockitoMVP
- 程式設計師可以自己寫測試?還需要測試人員嗎?程式設計師
- 關於安卓 sdk 測試安卓
- 好程式設計師Java教程分享Jmeter效能測試程式設計師JavaJMeter
- 微信小程式設計師自動化測試微信小程式程式設計師
- AI熱火朝天,2020的安卓程式設計師該何去何從?AI安卓程式設計師
- UI設計培訓分享:UI設計師的設計思路UI
- UI設計師面試時如何介紹自己?UI面試
- UI設計師面試時如何自我介紹UI面試
- 安卓下的串列埠測試安卓串列埠
- 如何用Postman做介面自動化測試Postman
- 程式設計師與測試員的立場對立程式設計師
- 測試中,介面測試的必要性與介面測試的基礎用例設計
- 程式設計師程式碼面試指南程式設計師面試
- 如何自學UI設計?如何成為UI設計師?UI
- UI設計師面試如何操作才能獲得高薪UI面試高薪
- 安卓測試跟ios 測試有什麼區別?安卓iOS
- 好程式設計師Java教程分享List介面程式設計師Java
- 好程式設計師Python培訓分享Python程式設計師面試技巧程式設計師Python面試
- 如果今天沒有API介面,今天的程式設計師如何程式設計?API程式設計師
- 程式設計師小明面試篇程式設計師面試
- 程式設計師面試經驗程式設計師面試
- 【程式設計師介面百寶箱】免費常用API介面程式設計師API
- 程式設計師到底要不要轉行軟體測試?程式設計師
- 不會效能測試的後端,不是好程式設計師後端程式設計師
- 老程式設計師轉測試 配置測試環境設定共享檔案 提高團隊效率程式設計師
- 聊聊介面測試用例設計規範
- java程式設計師程式設計筆試基礎學習Java程式設計師筆試
- 【ELK】Centos7 安裝 ELK 7.6.2 和 UI 管理介面以及測試例子CentOSUI