測試開發 XCTest iOS單元測試框架

2021-10-17 14:33:15 字數 1671 閱讀 4268

xctest    是ios的單元測試框架,有objective-c和swift兩種語言可以選擇

xcuitest  是ios的ui測試框架

xctest 框架類似於python中的unit test框架,宣告乙個測試case繼承xctestcase和測試方法,測試方法以test開頭,然後執行。

xctest類提供xctestcase和xctestsuite用於建立、管理和執行測試的共享功能。在大多數情況下,在專案中定義測試時,應該直接子類化xctestcase。

包含了以下屬性:

name:   test 的 name

testcasecount: case個數

testrun: xctestrun物件來執行test

testrunclass: 執行測試時例項化的xctestrun子類,以儲存測試結果。

包含了以下方法:

perform( xctestrun ):  執行乙個特定的測試

run():建立testrunclass指定的類的例項,並將其作為引數傳遞給執行perform(_:)方法。

還包含了一系列的斷言方法

具體的屬性和方法看文件,主要包含**塊效能檢測,非同步測試(例如開啟文件,其它執行緒工作,網路活動等等)

然後我們看下ios比較特殊的xcuitest

xcuitest 的話有三大類

xcuielement:定義了元素的操作事件

init(url) 根據url指定資源建立**

幾個常用的方法:

unknown  未知狀態

notruning  未執行

runningbackgroundsubspended 後台執行但被掛起

runningbackground 後台執行

runningforeground  正在前台執行

xcuielement 

xcuielementquery

建立查詢

返回所有符合元素型別的結果

返回包含匹配特定描述的元素

返回匹配identifier的所有元素

傳入nspredicate作為過濾器返回乙個新查詢,該查詢匹配與所提供描述直接匹配的所有元素。

獲取匹配元素

查詢返回對應索引的元素陣列

查詢匹配到的元素個數

查詢的單個匹配元素

將索引用於查詢結果的元素,以確定要使用哪個基礎可訪問性元素。

返回與之匹配的元素

這裡要介紹下class nspredicate

一種邏輯條件的定義,用於約束檢索或記憶體篩選。

argumentarray arguments: [any]?)

通過將給定陣列中的值替換為格式字串並解析結果來初始化匹配器。

例如://建立匹配器,匹配placeholdervalue的值為type in number的控制項

let predicate = nspredicate(format: "placeholdervalue == %@", "type in number")

螢幕上相對於某個ui元素的位置。

可以通過xcuielement的

來生成乙個ui位置

這個點生成的引數c**ector是生成位置的x,y除以當前element的中心點的x,y座標 

在官方文件中還有許多類,但基本基於上述的一些父類實現不同的方法,這個需要根據測試的需要來使用

測試開發探秘

不知道從什麼時候開始,出現了測試開發工程師這個稱呼,以前的測試是測試工程師,開發是開發工程師,可究竟什麼時候出現的測試開發工程師呢?怎麼才算得上是測試開發工程師呢?其實雖然我做測試開發,高階測試開發,以及資深測試開發很久了,但是不能給出乙個準確的定義。但是從以往的工作,招聘面試等經驗中,可以分析一下...

入行測試開發

02資料庫測試需要掌握哪些技能 直播 資料庫測試需要掌握哪些技能 11月5日 20 00 21 00 03 玩轉介面自動化測試 直播 玩轉介面自動化測試 11月6日 20 00 21 00 04 玩轉web自動化測試 直播 資料庫測試需要掌握哪些技能 11月7日 20 00 21 00 05 玩轉壓...

測試開發之路

前言 其實這篇文章的內容是想跟我帶過的2個徒弟說的,只是直到離職我們都沒有推心置腹的聊一次。我們似乎一直沒辦法面對面的坦誠說出自己心裡的想法。也許我做的不夠好,沒能贏得他們的信任。很遺憾你們走了 是的,很遺憾最終你們決定離開了這家公司。我很惋惜,你們都是我面試過的,面試的評價都很高。面試完老大問我你...