最近看了一下單元測試相關的內容,雖然對單元測試,有很多開發人員有不同的意見,但是我覺得單元測試對整個項目和個人的代碼質量提高有很高的促進作用.
單元測試和 TDD開發的解釋網上很全,比如:
https://zh.wikipedia.org/zh/%E6%B5%8B%E8%AF%95%E9%A9%B1%E5%8A%A8%E5%BC%80%E5%8F%91
http://baike.baidu.com/link?url=vCJ5aJAi-KxpXQt6zdKkskoegKEemQhCfnsyxSuSerRsRtOk_KNAbfqDkpMFV6NT
關於iOS的單元測試的介紹也有很多.這裏就不摘錄了,可以自己去看一下
http://www.cocoachina.com/applenews/devnews/2013/0724/6667_2.html
OCUnit 分爲功能測試(application test)和邏輯測試(logic test) 主要區別是 功能測試需要在 setup函數獲取 APPDelete 調用視圖資源
下面的內容只是個人參看網上的指導小小實驗了一下iOS中的單元測試,以後在編寫代碼的時候會帶上單元測試.
蘋果官方代碼示例中也有一個Demo, https://developer.apple.com/library/ios/samplecode/UnitTests/Introduction/Intro.htmlD
OCUnit是XCode集成的,所以其與工程的結合理應是最好的,添加到工程中的成本也理應最低。
首先創建工程的時候勾選“Include Unit Tests”的選項, 在Xcode5中就是默認勾選的.
如果爲以創建的工程添加單元測試可以添加一個Target 選擇 cocoa Touch Unit Testing Bundle 創建一個測試Target
添加完成就是這樣的,
在 UnitTestTests.m 中 默認有三個方法:
- (void)setUp
{
[super setUp];
// Put setup code here. This method is called before the invocation of each test method in the class.
}
- (void)tearDown
{
// Put teardown code here. This method is called after the invocation of each test method in the class.
[super tearDown];
}
- (void)testExample
{
XCTFail(@"No implementation for \"%s\"",__PRETTY_FUNCTION__);
}
- (CGFloat)additionWithFirstPar:(CGFloat)firstPar secondPar:(CGFloat)secondPar {
return (firstPar + secondPar);
}
測試類實現:
然後 commend + U 快捷鍵 運行測試程序.
如果有錯誤就會跳到錯誤位置.
至此,最簡單的單元測試已經可以運行了,更多的項目中的單元測試還需結合功能實現和結構設計來編寫測試用例測試.
有機會我會繼續編寫一些項目中的測試用例.
希望大家都能將單元測試執行起來.