您好,登錄后才能下訂單哦!
小編給大家分享一下怎么用Espresso測(cè)試UI界面,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
基本測(cè)試
先來(lái)看看可能需要寫(xiě)的一些常見(jiàn)測(cè)試:
按照上面的模式,根據(jù)要求編寫(xiě)測(cè)試用例:
在默認(rèn)窗口層次結(jié)構(gòu)之外測(cè)試視圖
可能有幾種情況需要測(cè)試不屬于默認(rèn)窗口層次結(jié)構(gòu)的視圖。例如,測(cè)試可能使用WindowManager呈現(xiàn)的視圖:
測(cè)試一個(gè)AdapterView
現(xiàn)在繼續(xù)進(jìn)行AdapterView測(cè)試。為了測(cè)試AdapterView,Espresso提供了一個(gè)單獨(dú)的onData()入口,在對(duì)其本身或其子進(jìn)行任何操作之前,首先對(duì)適配器項(xiàng)目進(jìn)行測(cè)試。如果要測(cè)試一個(gè)AdapterView,需要使用onData()方法而不是onView()方法。
可以在中找到可用的ObjectMatcher,DataOptions,ViewAction和ViewAssertion的完整列表。
下面是一個(gè)簡(jiǎn)單的例子,找到一個(gè)匹配單詞"Espresso"的String類型列表項(xiàng)并對(duì)它執(zhí)行click()事件:
下面的例子將找到具有內(nèi)容"item content:10"的列表項(xiàng)目,并且在其具有id R.id.item_id的子視圖上執(zhí)行點(diǎn)擊事件:
測(cè)試一個(gè)RecyclerView
由于RecyclerView對(duì)象的行為與AdapterView對(duì)象的行為不同,所以不能使用onData()來(lái)測(cè)試RecyclerView對(duì)象。
如果要測(cè)試RecyclerView,需要添加espresso-contrib包依賴項(xiàng)。這個(gè)軟件包包含一個(gè)RecyclerViewActions的集合,可以使用它來(lái)滾動(dòng)到位置或?qū)@些項(xiàng)目執(zhí)行操作。
要使用Espresso與RecyclerView進(jìn)行交互,可以使用espresso-contrib軟件包(在app / build.gradle中添加"com.android.support.test.espresso:espresso-contrib:2.2.2"依賴項(xiàng)) RecyclerViewActions可用于滾動(dòng)到位置或?qū)?xiàng)目執(zhí)行操作。該集合包括以下RecylerViewActions:
·scrollTo() - 此RecyclerViewActions滾動(dòng)到匹配的視圖。
·scrollToHolder() - 此RecyclerViewActions滾動(dòng)到匹配的視圖持有者。
·scrollToPosition() - 此RecyclerViewActions滾動(dòng)到一個(gè)特定的位置。
·actionOnHolderItem() - 此RecyclerViewActions在匹配的View Holder上執(zhí)行View Action。
·actionOnItem() - 此RecyclerViewActions在匹配的View上執(zhí)行View Action。
·actionOnItemAtPosition() - 此RecyclerViewActions在特定位置的視圖上執(zhí)行ViewAction。
我們來(lái)看一個(gè)測(cè)試RecyclerView的例子:
上面的例子將首先找到ID為R.id.rv_espresso的RecyclerView,然后滾動(dòng)到第五個(gè)位置并在該項(xiàng)目上執(zhí)行一個(gè)單擊事件。
同樣,我們也可以使用其他的RecyclerViewActions。
現(xiàn)在看看如何測(cè)試一個(gè)自定義RecyclerView,例如ExpandableRecyclerView??紤]一下,當(dāng)需要測(cè)試可展開(kāi)視圖的子視圖的情況。
首先,編寫(xiě)一個(gè)可以執(zhí)行的自定義操作:
現(xiàn)在,在子視圖上執(zhí)行這個(gè)操作:
現(xiàn)在來(lái)看看如何編寫(xiě)和使用Custom Matcher和Custom Failure Handler。
Custom Matcher & FailureHandler
在編寫(xiě)測(cè)試用例時(shí),可能需要實(shí)現(xiàn)Custom Matcher或者Custom Failure Handler,因?yàn)樵谀承┣闆r下,缺省的處理器可能不足夠。
1.Custom Matcher
有些情況下,默認(rèn)的可用匹配器可能是不夠的。在這種情況下,需要編寫(xiě)我們自己的匹配器。考慮一個(gè)情況,當(dāng)需要檢查EditText中的文本是否與正則表達(dá)式匹配時(shí),由于沒(méi)有默認(rèn)的匹配器做這個(gè)工作,所以需要程序員自己實(shí)現(xiàn)。
我們來(lái)看看如何編寫(xiě)一個(gè)用于驗(yàn)證模式的Custom Matcher:
使用這個(gè)匹配器:
2.Custom Failure Handler
有些情況下,我們可能想要處理一些Espresso拋出的異常,并自定義一些實(shí)現(xiàn),比如記錄一些可能更有意義的額外數(shù)據(jù)。
在已經(jīng)寫(xiě)了一個(gè)custom failure handler程序之后,我們需要這樣設(shè)置它:
看完了這篇文章,相信你對(duì)“怎么用Espresso測(cè)試UI界面”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。