根據(jù)測試的目的大致可以將單元測試分為這三類:
- 性能測試:測試代碼執(zhí)行花費(fèi)的時(shí)間
- 邏輯測試:測試代碼執(zhí)行結(jié)果是否符合預(yù)期
- 異步測試:測試多線程操作代碼
- 單元測試的方法必須以test開頭蘸嘶,遵循駝峰命名法且不能帶有參數(shù)。
- 測試方法的執(zhí)行順序是字典序排序嬉探。
- 按快捷鍵Command + U進(jìn)行單元測試(或者Product->Test)耸棒,這個(gè)是全部測試。
一個(gè)標(biāo)準(zhǔn)的測試類文件包含如下函數(shù):
- setUp會(huì)在每一個(gè)測試用例開始前調(diào)用,用來初始化相關(guān)數(shù)據(jù)
- tearDown在測試用例完成后調(diào)用,可以用來釋放變量操作畸颅;
- testPerformanceExample中的會(huì)將方法中的block代碼耗費(fèi)時(shí)長打印出來;
- testExample可以用來執(zhí)行我們需要的測試操作方援。
//生成一個(gè)失敗的測試重斑;
XCTFail(format…)
//為空判斷,a1為空時(shí)通過肯骇,反之不通過;
XCTAssertNil(a1, format...)
//不為空判斷祖很,a1不為空時(shí)通過笛丙,反之不通過;
XCTAssertNotNil(a1, format…)
//當(dāng)expression求值為TRUE時(shí)通過假颇;
XCTAssert(expression, format...)
//當(dāng)expression求值為TRUE時(shí)通過胚鸯;
XCTAssertTrue(expression, format...)
//當(dāng)expression求值為False時(shí)通過;
XCTAssertFalse(expression, format...)
//判斷相等笨鸡,[a1 isEqual:a2]值為TRUE時(shí)通過姜钳,其中一個(gè)不為空時(shí),不通過形耗;
XCTAssertEqualObjects(a1, a2, format...)
//判斷不等哥桥,[a1 isEqual:a2]值為False時(shí)通過;
XCTAssertNotEqualObjects(a1, a2, format...)
//判斷相等(當(dāng)a1和a2是 C語言標(biāo)量激涤、結(jié)構(gòu)體或聯(lián)合體時(shí)使用, 判斷的是變量的地址拟糕,如果地址相同則返回TRUE,否則返回NO)倦踢;
XCTAssertEqual(a1, a2, format...)
//判斷不等(當(dāng)a1和a2是 C語言標(biāo)量送滞、結(jié)構(gòu)體或聯(lián)合體時(shí)使用);
XCTAssertNotEqual(a1, a2, format...)
//判斷相等辱挥,(double或float類型)提供一個(gè)誤差范圍犁嗅,當(dāng)在誤差范圍(+/-accuracy)以內(nèi)相等時(shí)通過測試;
XCTAssertEqualWithAccuracy(a1, a2, accuracy, format...)
//判斷不等晤碘,(double或float類型)提供一個(gè)誤差范圍褂微,當(dāng)在誤差范圍以內(nèi)不等時(shí)通過測試功蜓;
XCTAssertNotEqualWithAccuracy(a1, a2, accuracy, format...)
//異常測試,當(dāng)expression發(fā)生異常時(shí)通過蕊梧;反之不通過霞赫;
XCTAssertThrows(expression, format...)
//異常測試,當(dāng)expression發(fā)生specificException異常時(shí)通過肥矢;反之發(fā)生其他異扯怂ィ或不發(fā)生異常均不通過;
XCTAssertThrowsSpecific(expression, specificException, format...)
//異常測試甘改,當(dāng)expression發(fā)生具體異常旅东、具體異常名稱的異常時(shí)通過測試,反之不通過十艾;
XCTAssertThrowsSpecificNamed(expression, specificException, exception_name, format...)
//異常測試抵代,當(dāng)expression沒有發(fā)生異常時(shí)通過測試;
XCTAssertNoThrow(expression, format…)
//異常測試忘嫉,當(dāng)expression沒有發(fā)生具體異常荤牍、具體異常名稱的異常時(shí)通過測試,反之不通過庆冕;
XCTAssertNoThrowSpecific(expression, specificException, format...)
//異常測試康吵,當(dāng)expression沒有發(fā)生具體異常、具體異常名稱的異常時(shí)通過測試访递,反之不通過
XCTAssertNoThrowSpecificNamed(expression, specificException, exception_name, format...)
參考文章:
iOS-使用Xcode自帶單元測試UnitTest
iOS單元測試(作用及入門提升)
iOS開發(fā)-單元測試