繼上篇文章介紹了XCTest中的單元測試,這片土地主要介紹下蘋果官方測試架構XCTest中的的UITest。
1、UITest簡介
UI Tests是一個自動測試UI與互動的Testing元件。UI testing允許你找到UI元素并與之互動,還能檢查屬性和狀态.可以和單元測試一起執行. UITest使用的OC/Swift語言的自動化測試。
可以通過編寫代碼、或者是記錄開發者的操作過程并代碼化,來實作自動點選某個按鈕、視圖,或者自動輸入文字等功能。随着項目功能的增加,舊功能也需要重新測試,導緻了大量重複工作,這些重複的工作有些是可以自動完成的,UI Tests就可以幫助解決這個問題了。
2、UITest進行UI測試
1)建立一個UI測試target
UI測試target的建立方法類似于單元測試的建立方式,也是有兩種,隻是選擇的target類型不同
方式一:通過建立新項目時,勾選 Include UI Tests
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5yYwUmMwITMlVGZxUzN3cDZzUjMjRmZ5gDOxIDOkZTMz8CXxAzLclDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL1M3Lc9CX6MHc0RHaiojIsJye.png)
3)運作方式
UI測試檔案的運作方式也是command+u,測試全部,或者點選類/方法的鑽石标志
4)UI測試檔案的使用
檔案建立好後,會自動建立以下函數
函數 | 用途 |
setUp | 1)繼承與XCTestCase 函數測試檔案開始執行的時候運作 2)setup中的XCUIApplication().launch()用于啟動app 3)可以自定義一個setup函數,将launch方法調用放在自定義函數裡,然後添加自己的資料加載 |
tearDown | 繼承與XCTestCase 測試函數運作完之後執行 |
testExample | 測試的例子函數 |
(1)将自帶的testExample删除,添加testUI,方法是空白的
(2)把光标放進到這個大括号裡面,看到如下圖中 的小紅點。點選這個錄制螢幕的按鈕。應用啟動。我們點選項目中的按鈕跳轉,函數中會根據您的操作自動生成代碼
(3)你可以點選該函數的鑽石标志運作,會重複您剛才的操作
(4)您也可以在操作代碼自動加入後,或者手寫操作代碼後,加入斷言判斷是否是您想要的結果。
5)常用基本操作:
(1)點選按鈕:app.buttons["登入"].tap()
(2)輸入框輸入文本
app.textFields["手機号"].tap() //要先聚焦文本框,才能繼續輸入
app.textFields["手機号"].typeText("13038865629")
等等
3、代碼中控件的擷取方式
類似于 app.buttons["TDD驅動測試界面"] 這樣的,如果我們需要人為手寫操作代碼,如何擷取控件,可以通過button的title或者設定的identifer擷取button,類似的還有app.tables, app.textFields,app.staticTexts等等.
xcode也有一個幫助工具 Accessibility Inspector 來擷取控件的屬性
點選中間的按鈕,選中控件,可以看到控件的屬性,我們一般利用其title來擷取控件