iOS單元測試

iOS單元測試

前言

  • 單元測試使用XCTest框架
  • 單元測試的目標(biāo):模型文件
  • 用處:不基于界面UI的情況下,保證模型類的邏輯正確

創(chuàng)建單元測試

  • File——New——Target——iOS Unit Testing Bundle
  • 也可以如下圖操作


    unittest_1.png

默認(rèn)方法

  • 測試用例文件名約定:以測試類名起始,添加Tests結(jié)尾, 如PersonTests.m
  • 類中以test開頭的方法且void返回類型的方法都會(huì)變成單元測試用例,如下
- (void)testAge
{
    // 在單元測試中一定要有邊界測試
    Person *p = [[Person alloc] init];
    p.age = 17;
    XCTAssertTrue(p.age >= 18, @"年齡應(yīng)該大于或等于18歲");
    p.age = 61;
    XCTAssertTrue(p.age <= 60, @"年齡應(yīng)該小于或等于60歲");
}

  • 默認(rèn)方法
// 每次測試前調(diào)用,可以在測試之前創(chuàng)建在test case方法中需要用到的一些對象等
- (void)setUp

// 每次測試結(jié)束時(shí)調(diào)用
- (void)tearDown

//性能測試方法,通過測試block中方法執(zhí)行的時(shí)間,比對設(shè)定的標(biāo)準(zhǔn)值和偏差覺得是否可以通過測試
    [self measureBlock:^{
        // Put the code you want to measure the time of here.
        for (int i = 0; i < 1000; i++) {
            NSLog(@"時(shí)間");
        }
    }];

斷言

  XCTAssert(expression, format...)

  //Bool測試:  
  XCTAssertTrue(expression, format...)
  XCTAssertFalse(expression, format...)

  //相等測試
  XCTAssertEqual(expression1, expression2, format...)
  XCTAssertNotEqual(expression1, expression2, format...)

  //double float 對比數(shù)據(jù)測試使用
  XCTAssertEqualWithAccuracy(expression1, expression2, accuracy, format...)
  XCTAssertNotEqualWithAccuracy(expression1, expression2, accuracy, format...)

  //Nil測試,XCTAssert[Not]Nil斷言判斷給定的表達(dá)式值是否為nil
  XCTAssertNil(expression, format...)
  XCTAssertNotNil(expression, format...)

  //失敗斷言     
  XCTFail(format...)
  

期望

  • 需要在一定時(shí)間之后再進(jìn)行判斷的測試?yán)?,可以使?expectationForPredicate 來對未來的狀態(tài)作出假設(shè)并測試在規(guī)定的超時(shí)時(shí)間內(nèi)是否得到理想的結(jié)果
    [self expectationForPredicate: 謂詞 evaluatedWithObject:被測試對象 handler:nil];
    
    // 設(shè)置期望的時(shí)間
    [self waitForExpectationsWithTimeout:超時(shí)時(shí)間 handler: nil];
    
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 編寫測試可不是一項(xiàng)迷人的工作;然而,由于測試可以避免使你的寶貝應(yīng)用程序變成一塊充斥錯(cuò)誤的大垃圾場,所以編寫測試又是...
    cosWriter閱讀 1,706評論 0 4
  • 單元測試 為什么需要單元測試 減少代碼中的低級錯(cuò)誤。 有效的降低bug的出現(xiàn)率。 增強(qiáng)可維護(hù)性。 有助于設(shè)計(jì):寫單...
    不要人夸顏色好閱讀 1,651評論 0 3
  • 為滿足某些特殊人群的生理需要,或某些疾病患者的營養(yǎng)需要,按特殊配方而專門加工的食品。這類食品的成分或成分含量,應(yīng)與...
    愛吃蘋果的小花貓閱讀 1,288評論 0 0
  • 原諒我,先輩們 為了獲取敵人的首級 讓我做一次殺手, 在黃昏中 看著夕陽的余暉 在利劍中冷笑我 我手拂過利刃 刃是...
    伊萬公津閱讀 228評論 0 0
  • 喵星人行為心理學(xué)有張插圖,發(fā)現(xiàn)特別像我家那貨,然后立馬截圖下來,越瞅越像,胖乎乎的腦袋,犀利的眼神,肥嘟嘟的一身膘...
    簡懿流年閱讀 292評論 0 0

友情鏈接更多精彩內(nèi)容