【乾貨】iOS9的新特性UI Tests

來源:互聯網
上載者:User

標籤:手機用戶端   電子書   輸入文字   視頻分享   target   

QQ群288567073,無商業廣告,每日乾貨電子書+視頻分享

荔枝FM手機用戶端搜尋“挨踢脫口秀”即可訂閱我們

視頻匯總首頁:http://edu.51cto.com/lecturer/index/user_id-4626073.html


什麼是UI Tests呢?

UI Tests是蘋果提供給我們進行UI測試的一套架構。

UI Tests有什麼用?

它可以通過編寫代碼、或者是記錄使用者操作過程並將其代碼化,來實現自動點擊某個按鈕、視圖,或者自動輸入文字等功能。

UI Tests的意義

在實際的項目迭代過程中,隨著項目越做越大,功能越來越多,僅僅靠人工操作的方式來覆蓋所有測試案例是非常困難的,尤其是加入新功能以後,舊的功能也要重新測試一遍,這導致了測試需要花非常多的時間來進行迴歸測試,這裡產生了大量重複的工作,而這些重複的工作有些是可以自動完成的,這時候UI Tests就可以協助解決這個問題了。

使用方法

   第一步:添加UI Tests。

如果是新項目,則建立工程的時候可以直接勾選Include UI Tests選項,如果是已有的項目,可以通過添加target的方式添加一個UI Tests的方式,如:

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/75/09/wKioL1YxgqaBFFCZAAFWtAX91RM312.jpg" title="1.png" alt="wKioL1YxgqaBFFCZAAFWtAX91RM312.jpg" />

在Test選項中選擇Cocoa Touch UI Testing Bundle.

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/75/0C/wKiom1Yxgn3DUT5hAAC-IZtn36c004.jpg" title="2.png" alt="wKiom1Yxgn3DUT5hAAC-IZtn36c004.jpg" />

   第二步:建立測試代碼。

這裡主要有兩種方式來產生測試代碼:

1、手動建立測試代碼。
   開啟測試檔案,在testXXX()方法中添加測試代碼

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/75/0C/wKiom1YxgovDGf9BAAHzs-lUAAg052.jpg" title="3.png" alt="wKiom1YxgovDGf9BAAHzs-lUAAg052.jpg" />

2、通過錄製指令碼的方式產生測試代碼。
   選擇測試檔案後,點擊左下方的錄製按鈕,這時候開始進行操作,它會記錄你的操作步驟,並產生測試代碼。

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/75/09/wKioL1YxgtGDvR1EAAFBKba_upM936.jpg" title="4.png" alt="wKioL1YxgtGDvR1EAAFBKba_upM936.jpg" />

就是在一些操作後自動產生的測試代碼。

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/75/09/wKioL1Yxgt6hnuUkAADh4Hs_ppw219.jpg" title="5.png" alt="wKioL1Yxgt6hnuUkAADh4Hs_ppw219.jpg" />

通過自動產生的程式碼片段,我們能夠分析出測試代碼的結構和一些可點擊控制項的名稱,將這些點擊的方法和控制項名稱記錄下來,之後就可以自己編寫測試代碼了,要知道手動建立的代碼可比錄製的方法靈活的多哦!

   第三步:開始測試。
   點擊testExample方法旁邊的播放按鈕,它就開始執行你的測試case了,這時候你會看到你的測試App在自動操作。

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/75/09/wKioL1YxguiCxB9dAACpJCSz4Tk614.jpg" title="6.png" alt="wKioL1YxguiCxB9dAACpJCSz4Tk614.jpg" />

UI Tests文法簡介

這裡主要給大家介紹一下UI Tests的主要類及方法。

   XCUIApplication類:
   繼承自XCUIElement,這個類掌管應用程式的生命週期,裡麵包含兩個主要方法:
   launch(): 啟動程式
   terminate(): 終止程式

   XCUIElement類:
   繼承自NSObject,實現協議XCUIElementAttributes, XCUIElementTypeQueryProvider,可以表示系統的各種UI元素,它主要包含以下幾個方法。
   exist: 可以讓你判斷當前的UI元素是否存在。
   descendantsMatchingType(type:XCUIElementType): 取某種類型的元素以及它的子類集合。
   childrenMatchingType(type:XCUIElementType): 取某種類型的元素集合,不包含它的子類。

這兩個方法的區別在於,你僅使用系統的UIButton時,用childrenMatchingType就可以了,如果你還希望查詢自己定義的子Button,就要用descendantsMatchingType方法。

   另外UI元素還有一些互動方法:

tap(): 點擊。

doubleTap(): 雙擊。
   pressForDuration(duration: NSTimeInterval): 長按一段時間。
   typeText(text: String): 用於textField和textView輸入文本時使用,使用前要確保文字框獲得輸入焦點,可以使用tap()函數使其獲得焦點。

當然了,這裡也只是給大家簡單介紹了一下常用的函數,具體如何使用還需要大家下去進一步探索哦!

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/75/0C/wKiom1YxgsCj8ZjSAADqcjpg4hg916.jpg" title="QQ群二維碼.png" alt="wKiom1YxgsCj8ZjSAADqcjpg4hg916.jpg" />

【乾貨】iOS9的新特性UI Tests

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.