• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 沒有單元測試,何談重構(3)

    發表于:2017-03-31來源:jianshu作者:溪石iOS點擊數: 標簽:重構
    準備測試工具 這里選用的是XCTest,它是Xcode8中內置的測試框架,使用起來非常簡單,分以下兩種情況為項目添加測試: 1. 新建工程時添加單元測試 : 新

     

    準備測試工具

    這里選用的是XCTest,它是Xcode8中內置的測試框架,使用起來非常簡單,分以下兩種情況為項目添加測試:

    1. 新建工程時添加單元測試

    新建時添加單元測試

    2.為已有工程添加單元測試

    Xcode8中添加的步驟與前幾代有所不同:

    添加Target

    用關鍵詞test快速找到Unit Testing bundle

    添加好單元測試后的工程結構

    添加第一個測試

    第一個測試是很重要的,它決定了我們后面測試的思路和方向,這里以需要什么測什么為指導原則,從結果出發,所以先來看下基本的點播需求

    工作日點播一部普通影片,收費2元,積一分。

    根據以上需求描述,我們在RefactorDemoTests.m添加測試方法

     

    - (void)testStatement_Regular {
        Movie *matrixMovie1 = [[Movie alloc] initWithTitle:@"黑客帝國1"
                                                 priceCode:MovieEnumRegular];
        Demand *aDemand1 = [[Demand alloc] initWithMovie:matrixMovie1
                                              timePeriod:TimePeriodEnumWorkDaytime];

    // 顧客租賃一部:
    Customer *aCustomer = [[Customer alloc] initCustomerWithName:@"溪石"];
    [aCustomer addDemand:aDemand1];

    XCTAssertTrue([@"溪石的點播清單\\\\n"
    @"\\\\t黑客帝國1\\\\t2 元\\\\n"
    @"費用總計 2 元\\\\n"
    @"獲得積分 1"
    isEqualToString:[aCustomer statement]],
    @"測試點播一部普通電影");

    }

     

    這個測試用例中,顧客“溪石”點播了一部老片《黑客帝國1》,由于是工作日,因此按原價收取,并積1分,詳細細節看Cutomer類源碼中的方法statement()。 按快捷鍵?U,運行測試,發現測試報錯了:

    原文轉自:http://www.jianshu.com/p/0b4fd636ad2c

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>