qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請?jiān)L問 http://qaseven.github.io/

          OCUnit單元測試學(xué)習(xí)

          一、OCUnit概述
            添加OCUnit到工程中有兩種方法,一種是在創(chuàng)建工程時(shí)添加,勾選“include Unit Tests”;另一種是在現(xiàn)有工程中添加“Cocoa Touch Unit Testing Bundle”Target來實(shí)現(xiàn)。詳細(xì)添加過程略。
            測試方法的方法名必須test開頭,測試方法的個(gè)數(shù)沒有限制。
            一個(gè)完整的測試類組成像下圖:
            框架會(huì)自動(dòng)查找所有工程中SenTestCase的子類,運(yùn)行其中全部命名類似testXXX的無返回值方法。
            setUp方法是初始化方法,tearDown方法是釋放資源的方法,setUp和tearDown方法在每次調(diào)用測試方法之前和之后調(diào)用,因此在測試類運(yùn)行的生命周期中這兩個(gè)方法可能多次運(yùn)行。如下所示:
            二、代碼示例
          ZYViewController.h:
          @property (weak, nonatomic) IBOutlet UITextField *textField;
          ZYViewController.m:
          - (int)doubleValue:(int)value{
          return value * 2;
          }
            1、簡單測試實(shí)例方法(單個(gè)測試用例);
          - (void)testDoubleValue{
          ZYViewController* viewController = [[ZYViewController alloc] init];
          int value = 1;
          int expect = value*2;
          int doubleValue = [self.viewController doubleValue:value];
          XCTAssertTrue(expect == doubleValue, @"期望值:%d,實(shí)際值:%d",expect,doubleValue);
          2、循環(huán)測試實(shí)例方法(多個(gè)測試用例);
          - (int)getValue{
          static int value = 1;
          value +=1;
          NSLog(@"test 2 value:%d",value);
          return value;
          }
          - (void)doTest:(int)value expect:(int)expect{
          int doubleValue = [self.viewController doubleValue:value];
          XCTAssertTrue(expect == doubleValue, @"期望值:%d,實(shí)際值:%d",expect,doubleValue);
          }
          - (void)testDoubleValue{
          for (int count = 0; count < 10; count++) {
          int value = [self getValue];
          [self doTest:value expect:value*2];
          }
          }
            3、測試異步調(diào)用(UI操作、網(wǎng)絡(luò)等操作);
          - (void)testInput{
          ZYAppDelegate* delegate = [[UIApplication sharedApplication] delegate];
          UIWindow *window = delegate.window;
          viewController = (ZYViewController*)window.rootViewController;
          viewController.textField.placeholder = @"請輸入...";
          [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:10]];
          XCTAssertTrue([viewController.textField.text length]>0, @"textField had not input");
          }


          posted on 2014-03-14 10:56 順其自然EVO 閱讀(676) 評論(0)  編輯  收藏 所屬分類: 測試學(xué)習(xí)專欄

          <2014年3月>
          2324252627281
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 宜丰县| 博客| 安远县| 丹凤县| 新疆| 永安市| 杭锦后旗| 涞源县| 项城市| 巴彦淖尔市| 内丘县| 治县。| 定州市| 额济纳旗| 亳州市| 南康市| 颍上县| 潜山县| 杭州市| 绥中县| 枞阳县| 康平县| 鄯善县| 海晏县| 清丰县| 辽源市| 乐东| 石首市| 永春县| 比如县| 高青县| 昆明市| 梨树县| 辰溪县| 垣曲县| 濉溪县| 东方市| 贞丰县| 健康| 敖汉旗| 北票市|