顧名思義,單元測試面向的對象是單元,這個專有名詞源自編譯器領域的術語“編譯單元”。在面向過程中,指的是函數,而在面向對象中,指的通常就是“類”。因而,每個功能類都應該提供對應的單元測試。單元測試本質上說白了就是用一些斷言來判定結果。測試方法有很多,OCUnit、GTM、GHUnit、CATCH、OCMock等。
以OCUnit為例:
OCUnit的測試用例最常用的方法有三個
-(void)setUp:每個test方法執行前調用
-(void)tearDown:每個test方法執行后調用
-(void)testXXX:命名為XXX的測試方法
使用OCUnit最大的好處就是流程非常的簡單,簡單到讓你覺得非常愉悅。由于有XCode的支持,添加測試變得異常簡單。只要在新建工程時勾選“Include Unit Tests”,就會自動的加入一個示例。然后在需要添加新的單元測試時,新建一個“Objective-C test case class”就可以了。
Paste_Image.png
創建之后,會生成一個OCUnitTestTests的文件夾(注:這個文件夾的名字是你的工程名+Tests),在這里你還可以看到上面提到的三個方法已經自動為您生成好了~
Paste_Image.png
然后在需要添加新的單元測試時,新建一個“Objective-C test case class”就可以了。
Paste_Image.png
測試文件中,只要知道setUp是初始化的地方,tearDown是結束清理的地方,而且它們在每個用例方法執行時都會重新執行--這保證了測試用例的原子性。然后知道每個測試用例都是以test作為前綴的,并且無返回值。然后在方法中編寫斷言語句就可以了。輸入STAssertxxxxx就可以看到它們的聯想提示。編寫完成后,執行菜單Product->Test,單元測試就完成了!
這里作者只是簡單的描述了下大框,有興趣的朋友可以深入了解下,作者后期還會整理出更詳細的資料,敬請關注...