溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么用Espresso測(cè)試UI界面

發(fā)布時(shí)間:2021-11-02 16:38:01 來(lái)源:億速云 閱讀:134 作者:小新 欄目:移動(dòng)開(kāi)發(fā)

小編給大家分享一下怎么用Espresso測(cè)試UI界面,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

  基本測(cè)試

  先來(lái)看看可能需要寫(xiě)的一些常見(jiàn)測(cè)試:

  怎么用Espresso測(cè)試UI界面

  按照上面的模式,根據(jù)要求編寫(xiě)測(cè)試用例:

  在默認(rèn)窗口層次結(jié)構(gòu)之外測(cè)試視圖

  可能有幾種情況需要測(cè)試不屬于默認(rèn)窗口層次結(jié)構(gòu)的視圖。例如,測(cè)試可能使用WindowManager呈現(xiàn)的視圖:

 怎么用Espresso測(cè)試UI界面

  測(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()方法。

怎么用Espresso測(cè)試UI界面

  可以在中找到可用的ObjectMatcher,DataOptions,ViewAction和ViewAssertion的完整列表。

  下面是一個(gè)簡(jiǎn)單的例子,找到一個(gè)匹配單詞"Espresso"的String類型列表項(xiàng)并對(duì)它執(zhí)行click()事件:

怎么用Espresso測(cè)試UI界面

  下面的例子將找到具有內(nèi)容"item content:10"的列表項(xiàng)目,并且在其具有id R.id.item_id的子視圖上執(zhí)行點(diǎn)擊事件:

怎么用Espresso測(cè)試UI界面

  測(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的例子:

怎么用Espresso測(cè)試UI界面

  上面的例子將首先找到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í)行的自定義操作:

  怎么用Espresso測(cè)試UI界面

  現(xiàn)在,在子視圖上執(zhí)行這個(gè)操作:

怎么用Espresso測(cè)試UI界面

  現(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:

  怎么用Espresso測(cè)試UI界面

  使用這個(gè)匹配器:

怎么用Espresso測(cè)試UI界面

  2.Custom Failure Handler

  有些情況下,我們可能想要處理一些Espresso拋出的異常,并自定義一些實(shí)現(xiàn),比如記錄一些可能更有意義的額外數(shù)據(jù)。

  怎么用Espresso測(cè)試UI界面

  在已經(jīng)寫(xiě)了一個(gè)custom failure handler程序之后,我們需要這樣設(shè)置它:

怎么用Espresso測(cè)試UI界面

看完了這篇文章,相信你對(duì)“怎么用Espresso測(cè)試UI界面”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI