XCTest-9-用戶界面測試

UI測試使你能夠找到并與你應(yīng)用程序的UI進行交互,以驗證UI元素的屬性和狀態(tài)。

UI測試包括UI記錄,這使你能夠生成代碼,以相同的方式練習(xí)你的應(yīng)用程序的UI,并可以擴展到實現(xiàn)UI測試。這是一個很好的方式來快速開始編寫UI測試。

增強了測試報告,以提供有關(guān)UI測試的詳細信息,包括測試失敗時UI狀態(tài)的快照。

UI測試基于兩個核心技術(shù):XCTest框架和輔助功能。

1.XCTest提供了與Xcode集成的UI測試功能的框架。創(chuàng)建和使用UI測試擴展了你對使用XCTest和創(chuàng)建單元測試的了解。你創(chuàng)建一個UI測試目標(biāo),并且作為項目的一部分創(chuàng)建UI測試類和UI測試方法。你使用XCTest斷言來驗證預(yù)期結(jié)果是否為真。你還可以通過Xcode Server和xcodebuild獲得持續(xù)集成。XCTest完全兼容Objective-C和Swift。

2.可訪問性是核心技術(shù),允許殘疾用戶與iOS和macOS相同的豐富的體驗,其他用戶收到。它包括一組豐富的關(guān)于UI的語義數(shù)據(jù),用戶可以使用它們來指導(dǎo)他們使用您的應(yīng)用程序??稍L問性與UIKit和AppKit集成,并具有允許你微調(diào)行為和暴露給外部使用的API的API。UI測試使用該數(shù)據(jù)來執(zhí)行其功能。

在源代碼中創(chuàng)建UI測試類似于創(chuàng)建單元測試。你為應(yīng)用程序創(chuàng)建UI測試目標(biāo); 那么Xcode將為你創(chuàng)建一個默認的UI測試組和實現(xiàn)文件,并在實現(xiàn)文件中使用示例測試方法模板。創(chuàng)建UI測試目標(biāo)時,指定測試將處理的應(yīng)用程序。

UI測試的工作原理是通過查找應(yīng)用程序的UI對象,合成事件并將它們發(fā)送到這些對象,并提供豐富的API,使你能夠檢查UI對象屬性和狀態(tài),以將它們與預(yù)期狀態(tài)進行比較。

要求

UI測試取決于服務(wù)和API,不僅在開發(fā)工具中,而且在操作系統(tǒng)平臺上。你需要Xcode 7,macOS 10.11和iOS 9(或更高版本)。UI測試保護隱私:

1.iOS設(shè)備需要啟用進行開發(fā)并連接到受信任的主機。

2.macOS需要授予特殊Xcode Helper應(yīng)用程序的權(quán)限。當(dāng)您首次使用UI測試時,系統(tǒng)會自動提示你。

iOS設(shè)備需要啟用進行開發(fā)并連接到受信任的主機。macOS需要授予一個特殊的Xcode Helper應(yīng)用程序的權(quán)限(第一次使用時自動提示)。

概念和APIs

UI測試從根本上與單元測試不同。單元測試使你能夠在應(yīng)用程序的范圍內(nèi)工作,并允許您通過完全訪問應(yīng)用程序的變量和狀態(tài)來執(zhí)行功能和方法。UI測試以與用戶無需訪問應(yīng)用程序的內(nèi)部方法,函數(shù)和變量的方式相同的方式練習(xí)您的應(yīng)用程序的UI。這使您的測試能夠以與用戶相同的方式查看應(yīng)用程序,從而暴露用戶遇到的UI問題。

你的測試代碼作為一個單獨的進程運行,合成應(yīng)用程序中的UI響應(yīng)的事件。

APIs

UI測試基于三個新類的實現(xiàn):

1.XCUIApplication

2.XCUIElement

3.XCUIElementQuery

開始使用UI錄制

從UI記錄開始。它將源代碼生成為可以編輯以構(gòu)建測試或播放特定使用場景的測試實現(xiàn)文件。UI記錄對于探索新的UI或?qū)W習(xí)如何編寫UI測試序列也很有用。操作的基本順序是:

1.使用測試導(dǎo)航器,創(chuàng)建UI測試目標(biāo)。

2.在創(chuàng)建的模板文件中,將光標(biāo)置于測試函數(shù)中。

3.開始UI錄制。
應(yīng)用程序啟動并運行。練習(xí)應(yīng)用程序執(zhí)行一系列UI操作。Xcode將動作捕獲到函數(shù)主體中的源中。

4.完成要測試的操作后,停止UI記錄。

5.向源中添加XCTest斷言。

編寫UI測試

API測試可以同時具有功能和性能方面,UI測試也可以。UI測試在應(yīng)用程序的表面空間操作,并傾向于將許多低級功能集成到用戶看到的呈現(xiàn)和響應(yīng)中。

UI測試從根本上操作事件和響應(yīng)的水平。

1.查詢查找元素。

2.知道元素的預(yù)期行為作為參考。

3.點擊或單擊元素以引出響應(yīng)。

4.測量響應(yīng)與通過/失敗結(jié)果的預(yù)期匹配或不匹配。

使用XCTest創(chuàng)建UI測試是與創(chuàng)建單元測試相同的編程模型的擴展。類似的操作和編程方法被總體使用,給出了UI測試API的基本概念以及它們?nèi)绾卧?a target="_blank" rel="nofollow">用戶界面測試中描述的操作的差異。在測試類結(jié)構(gòu)中,所提供的setUp方法包括setUp與單元測試類中的兩個差異。

- (void)setUp {
[super setUp];

// Put setup code here。在調(diào)用類中的每個測試方法之前調(diào)用此方法。

self.continueAfterFailure = NO;
[[[XCUIApplication alloc] init] launch];
}}

self.continueAfterFailure設(shè)置NO為默認值。這通常是正確的配置,因為UI測試方法中的每個步驟往往取決于前一個步驟的成功; 如果一個步驟失敗,所有以下測試也會失敗。

方法的另一個補充setUp包括創(chuàng)建一個實例XCUIApplication并啟動它。UI測試必須啟動他們測試setUp的應(yīng)用程序,并且由于在每個測試方法之前運行,這確保為每個測試方法啟動應(yīng)用程序。

編寫UI測試方法時,應(yīng)使用UI記錄功能為測試創(chuàng)建一組基本步驟。然后,為了你的目的編輯此基本序列,使用XCTest斷言提供與單元測試一樣的通過或失敗結(jié)果。UI測試具有功能和性能方面,就像單元測試一樣。

用于正確性的UI測試的一般模式如下:

1.使用XCUIElementQuery查找XCUIElement。
2.合成事件并將其發(fā)送到XCUIElement。
3.使用斷言將XCUIElement的狀態(tài)與預(yù)期的參考狀態(tài)進行比較。

要構(gòu)建性能的UI測試,請將可重復(fù)的UI序列步驟measureBlock包含在編寫性能測試中看到的結(jié)構(gòu)中。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容