介紹KIF
KIF的全稱是Keep it functional。它是一個(gè)建立在XCTest的UI測(cè)試框架,通過accessibility來定位具體的控件,來操作UI。
導(dǎo)入KIF
target?'XXXUnitTests'?do
#? ? 3.5.2
pod?'KIF', :configurations => ['Debug']
end
寫測(cè)試用例和講解常用方法
給UI組件的accessibilityLabel屬性賦值,例如:
self.nameTextF.accessibilityLabel?=?@"nameTextF";
新建單元測(cè)試類,寫測(cè)試方法(以test開頭)//- (void)testZhuCe
[tester?tapViewWithAccessibilityLabel:@"liJiZhuCeBtn"];
[tester?enterText:@"19902030220"?intoViewWithAccessibilityLabel:@"phoneNumField"];
[tester?clearTextFromAndThenEnterText:@"鄧超界"?intoViewWithAccessibilityLabel:@"jieSuanZhangHuText"];
[tester?waitForTimeInterval:15];//?手動(dòng)輸入驗(yàn)證碼
[tester?waitForViewWithAccessibilityLabel:@"dengLuVC"];
if?([tester?tryFindingTappableViewWithAccessibilityLabel:@"jumpButton"?error:nil]) {
[tester?tapViewWithAccessibilityLabel:@"jumpButton"];
}
[tester?enterText:@"0119"?intoViewWithAccessibilityLabel:@"carddateField"?traits:UIAccessibilityTraitNoneexpectedResult:@"01/19"];
Tips
按鈕的title、類的title,可以直接做為訪問標(biāo)簽;
如果UI組件被鍵盤擋住了,需要先退掉鍵盤;如果UI組件不在屏幕范圍內(nèi),不可以訪問,但是滾動(dòng)視圖,可以訪問,且會(huì)出現(xiàn)在可視范圍。
無法訪問系統(tǒng)自己的彈窗。例如app想定位用戶,不能自動(dòng)點(diǎn)擊允許;但是app自己的彈窗,可以操作的;
類內(nèi)部的多個(gè)測(cè)試方法的測(cè)試順序,是無序的;類與類的測(cè)試順序,是無序的;可以將某個(gè)測(cè)試類或者測(cè)試方法給disable掉;
遇到的坑
pod 'KIF', :configurations => ['Debug']
pod 'KIF/IdentifierTests'#此處錯(cuò)誤;
造成Target Support Files和Headers文件夾內(nèi)文件丟失;
IdentifierTests不導(dǎo)入也可以正常使用;
參考:https://www.cnblogs.com/dengchaojie/p/6814395.html