十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
小編給大家分享一下怎么用Espresso測試UI界面,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
基本測試
先來看看可能需要寫的一些常見測試:
按照上面的模式,根據(jù)要求編寫測試用例:
在默認(rèn)窗口層次結(jié)構(gòu)之外測試視圖
可能有幾種情況需要測試不屬于默認(rèn)窗口層次結(jié)構(gòu)的視圖。例如,測試可能使用WindowManager呈現(xiàn)的視圖:
測試一個AdapterView
現(xiàn)在繼續(xù)進行AdapterView測試。為了測試AdapterView,Espresso提供了一個單獨的onData()入口,在對其本身或其子進行任何操作之前,首先對適配器項目進行測試。如果要測試一個AdapterView,需要使用onData()方法而不是onView()方法。
可以在中找到可用的ObjectMatcher,DataOptions,ViewAction和ViewAssertion的完整列表。
下面是一個簡單的例子,找到一個匹配單詞"Espresso"的String類型列表項并對它執(zhí)行click()事件:
下面的例子將找到具有內(nèi)容"item content:10"的列表項目,并且在其具有id R.id.item_id的子視圖上執(zhí)行點擊事件:
測試一個RecyclerView
由于RecyclerView對象的行為與AdapterView對象的行為不同,所以不能使用onData()來測試RecyclerView對象。
如果要測試RecyclerView,需要添加espresso-contrib包依賴項。這個軟件包包含一個RecyclerViewActions的集合,可以使用它來滾動到位置或?qū)@些項目執(zhí)行操作。
要使用Espresso與RecyclerView進行交互,可以使用espresso-contrib軟件包(在app / build.gradle中添加"com.android.support.test.espresso:espresso-contrib:2.2.2"依賴項) RecyclerViewActions可用于滾動到位置或?qū)椖繄?zhí)行操作。該集合包括以下RecylerViewActions:
·scrollTo() - 此RecyclerViewActions滾動到匹配的視圖。
·scrollToHolder() - 此RecyclerViewActions滾動到匹配的視圖持有者。
·scrollToPosition() - 此RecyclerViewActions滾動到一個特定的位置。
·actionOnHolderItem() - 此RecyclerViewActions在匹配的View Holder上執(zhí)行View Action。
·actionOnItem() - 此RecyclerViewActions在匹配的View上執(zhí)行View Action。
·actionOnItemAtPosition() - 此RecyclerViewActions在特定位置的視圖上執(zhí)行ViewAction。
我們來看一個測試RecyclerView的例子:
上面的例子將首先找到ID為R.id.rv_espresso的RecyclerView,然后滾動到第五個位置并在該項目上執(zhí)行一個單擊事件。
同樣,我們也可以使用其他的RecyclerViewActions。
現(xiàn)在看看如何測試一個自定義RecyclerView,例如ExpandableRecyclerView??紤]一下,當(dāng)需要測試可展開視圖的子視圖的情況。
首先,編寫一個可以執(zhí)行的自定義操作:
現(xiàn)在,在子視圖上執(zhí)行這個操作:
現(xiàn)在來看看如何編寫和使用Custom Matcher和Custom Failure Handler。
Custom Matcher & FailureHandler
在編寫測試用例時,可能需要實現(xiàn)Custom Matcher或者Custom Failure Handler,因為在某些情況下,缺省的處理器可能不足夠。
1.Custom Matcher
有些情況下,默認(rèn)的可用匹配器可能是不夠的。在這種情況下,需要編寫我們自己的匹配器。考慮一個情況,當(dāng)需要檢查EditText中的文本是否與正則表達(dá)式匹配時,由于沒有默認(rèn)的匹配器做這個工作,所以需要程序員自己實現(xiàn)。
我們來看看如何編寫一個用于驗證模式的Custom Matcher:
使用這個匹配器:
2.Custom Failure Handler
有些情況下,我們可能想要處理一些Espresso拋出的異常,并自定義一些實現(xiàn),比如記錄一些可能更有意義的額外數(shù)據(jù)。
在已經(jīng)寫了一個custom failure handler程序之后,我們需要這樣設(shè)置它:
看完了這篇文章,相信你對“怎么用Espresso測試UI界面”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝各位的閱讀!