TDD的簡單理解

TDD -- Test-Driven Development(測試驅(qū)動開發(fā))

應(yīng)用環(huán)境:在程序的開發(fā)中,經(jīng)常會遇到當(dāng)你需要測試一個功能是否能夠正常運(yùn)行時,你需要在你的測試機(jī)上運(yùn)行程序,一頁一頁的跳轉(zhuǎn)到你需要測試的頁面為止.這樣的測試是非常消耗時間的.當(dāng)你需要這樣的功能時,那么你是時候去了解一下TDD了.


好魔性的圖..借用一下

什么是TDD:測試驅(qū)動開發(fā).顧名思義,一邊寫Demo,一邊做開發(fā)(我是這么理解的).當(dāng)你接到你的業(yè)務(wù)邏輯的時候,ok你開始著手開發(fā).你拿到的可能是一個很大的工程.層層接口的封裝,讓你想寫一個Demo卻無從下手.那么恭喜你,是時候用一下TDD了.讓我們來了解一下TDD的簡單用法.

新建一個工程,TDDText.在如圖的目錄我們可以看到一個Text文件:


TDDTesxtTests.m

對,這個就是我們需要操作的地方!不妨點進(jìn)去看看里面有什么.


TDDtextTests

自帶的兩個方法,setUp和setDown分別為測試程序開始,結(jié)束時被調(diào)用.需要被測試的程序,自然就是在testExample里面去實現(xiàn)啦.其中還有一個testPerformanceExmple.這個地方是做性能測試的.我是在里面執(zhí)行了一個for循環(huán)感受了一下.

現(xiàn)在不妨在我們的viewcontroll里面寫一個方法看看.

嘿嘿嘿

這里返回一個int值.我們需要在test頁面的頭文件下聲明一下我們的viewcontroll,然后調(diào)用我們的方法.表忘了在系統(tǒng)規(guī)定好的地方實例化和釋放viewcontroll這個對象!


就是醬啦

現(xiàn)在我們不妨去command + u運(yùn)行一下測試.如果不出意外,沒錯:

測試通過

修改一下你的入?yún)?再看看失敗的效果是什么樣的.這里就不舉例了.至于XCTAsserEqual這段命令,是OC封裝好的.以下是其他語句和翻譯.

XCTFail(format…) 生成一個失敗的測試; XCTAssertNil(a1,format...)為空判斷,a1為空時通過,反之不通過;XCTAssertNotNil(a1,format…)不為空判斷,a1不為空時通過,反之不通過;XCTAssert(expression,format...)當(dāng)expression求值為TRUE時通過;XCTAssertTrue(expression,format...)當(dāng)expression求值為TRUE時通過;XCTAssertFalse(expression,format...)當(dāng)expression求值為False時通過;XCTAssertEqualObjects(a1, a2,format...)判斷相等,[a1 isEqual:a2]值為TRUE時通過,其中一個不為空時,不通過;XCTAssertNotEqualObjects(a1, a2,format...)判斷不等,[a1 isEqual:a2]值為False時通過;XCTAssertEqual(a1, a2,format...)判斷相等(當(dāng)a1和a2是 C語言標(biāo)量、結(jié)構(gòu)體或聯(lián)合體時使用, 判斷的是變量的地址,如果地址相同則返回TRUE,否則返回NO);XCTAssertNotEqual(a1, a2,format...)判斷不等(當(dāng)a1和a2是 C語言標(biāo)量、結(jié)構(gòu)體或聯(lián)合體時使用);XCTAssertEqualWithAccuracy(a1, a2, accuracy,format...)判斷相等,(double或float類型)提供一個誤差范圍,當(dāng)在誤差范圍(+/-accuracy)以內(nèi)相等時通過測試;

XCTAssertNotEqualWithAccuracy(a1, a2, accuracy, format...) 判斷不等,(double或float類型)提供一個誤差范圍,當(dāng)在誤差范圍以內(nèi)不等時通過測試;

XCTAssertThrows(expression, format...)異常測試,當(dāng)expression發(fā)生異常時通過;反之不通過;(很變態(tài)) XCTAssertThrowsSpecific(expression, specificException, format...) 異常測試,當(dāng)expression發(fā)生specificException異常時通過;反之發(fā)生其他異?;虿话l(fā)生異常均不通過;

XCTAssertThrowsSpecificNamed(expression, specificException, exception_name, format...)異常測試,當(dāng)expression發(fā)生具體異常、具體異常名稱的異常時通過測試,反之不通過;

XCTAssertNoThrow(expression, format…)異常測試,當(dāng)expression沒有發(fā)生異常時通過測試;

XCTAssertNoThrowSpecific(expression, specificException, format...)異常測試,當(dāng)expression沒有發(fā)生具體異常、具體異常名稱的異常時通過測試,反之不通過;

XCTAssertNoThrowSpecificNamed(expression, specificException, exception_name, format...)異常測試,當(dāng)expression沒有發(fā)生具體異常、具體異常名稱的異常時通過測試,反之不通過


以上內(nèi)容是根據(jù)以下網(wǎng)址內(nèi)容總結(jié),摘抄的:

http://www.itdecent.cn/p/009844a0b9ed

http://www.cocoachina.com/industry/20140218/7841.html

感謝大神們把東西整理的這么好!說的不對的地方請輕噴~

最后編輯于
?著作權(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)容