qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          OCUnit單元測試學習

          一、OCUnit概述
            添加OCUnit到工程中有兩種方法,一種是在創建工程時添加,勾選“include Unit Tests”;另一種是在現有工程中添加“Cocoa Touch Unit Testing Bundle”Target來實現。詳細添加過程略。
            測試方法的方法名必須test開頭,測試方法的個數沒有限制。
            一個完整的測試類組成像下圖:
            框架會自動查找所有工程中SenTestCase的子類,運行其中全部命名類似testXXX的無返回值方法。
            setUp方法是初始化方法,tearDown方法是釋放資源的方法,setUp和tearDown方法在每次調用測試方法之前和之后調用,因此在測試類運行的生命周期中這兩個方法可能多次運行。如下所示:
            二、代碼示例
          ZYViewController.h:
          @property (weak, nonatomic) IBOutlet UITextField *textField;
          ZYViewController.m:
          - (int)doubleValue:(int)value{
          return value * 2;
          }
            1、簡單測試實例方法(單個測試用例);
          - (void)testDoubleValue{
          ZYViewController* viewController = [[ZYViewController alloc] init];
          int value = 1;
          int expect = value*2;
          int doubleValue = [self.viewController doubleValue:value];
          XCTAssertTrue(expect == doubleValue, @"期望值:%d,實際值:%d",expect,doubleValue);
          2、循環測試實例方法(多個測試用例);
          - (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,實際值:%d",expect,doubleValue);
          }
          - (void)testDoubleValue{
          for (int count = 0; count < 10; count++) {
          int value = [self getValue];
          [self doTest:value expect:value*2];
          }
          }
            3、測試異步調用(UI操作、網絡等操作);
          - (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)  編輯  收藏 所屬分類: 測試學習專欄

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

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 鄱阳县| 盘锦市| 马边| 临朐县| 江永县| 阿城市| 台湾省| 伊通| 滕州市| 西乡县| 平湖市| 永德县| 库尔勒市| 勐海县| 庆安县| 乐清市| 济南市| 丰都县| 北京市| 西吉县| 耿马| 华池县| 改则县| 卓尼县| 金堂县| 安化县| 沅江市| 舒兰市| 秦安县| 长宁县| 古蔺县| 迁安市| 油尖旺区| 沁阳市| 永新县| 青川县| 沽源县| 博乐市| 宁国市| 洪江市| 东莞市|