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

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

  • <strong id="5koa6"></strong>
  • 作為iOS開發者,測試是你的必修課:讓我教教你iOS系統如何做測試(3)

    發表于:2016-11-09來源:簡述作者:庸者的救贖點擊數: 標簽:
    postForLoginAction (response: String) - String { if response. contains ( Failure ) { return Failure ! } else { return Success ! }} 這個時候我們可以在 Unit Test 里面寫一個 Test Method 來做
    postForLoginAction(response: String) -> String { if response.contains("Failure") { return "Failure !" } else { return "Success !" } }

    這個時候我們可以在Unit Test里面寫一個Test Method來做個事情,去驗證返回結果的正確性

    func testNumberOfVowelsInString_shouldReturnNumberOfVowels() {
        let viewController = ViewController()
        let string = "Failure"
        let results = viewController.postForLoginAction(response: "xxx")
        XCTAssertEqual(string, results, "登錄失敗,返回結果: \(results)")
    }

    這里使用了XCTest框架里面的一個斷言函數XCTAssertEqual(_:_:message:),他是用來檢測兩個表達式是否相等,最后一個參數是在不等的情況下會log的信息;

    在寫測試的時候會有很多類似XCTAssertEqual的方法被調用到,下面列舉一些常用的:

    • XCTAssertTrue(\_:\_:file:line:): 判斷結果是否為真
    • XCTAssertFalse(\_:\_:file:line:):判斷結果是否為假
    • XCTAssertEqual(\_:\_:\_:file:line:): 判斷兩個表達式是否相等
    • XCTAssertNotEqual(\_:\_:\_:file:line:): 判斷不相等
    • XCTAssertNil(\_:\_:file:line:): 判斷結果是否為nil
    • XCTAssertNotNil(\_:\_:file:line:): 判斷是否為非nil

    有興趣的同學可以進入XCTest里面查找一下,有很多個,而且命名方式都非常的語義化,還是比較容易理解的

    Unit Tests的運行方法和UI Tests有些區別,Unit Tests并沒有自動記錄功能,所有只能Command + U來進行測試

    當然,Unit Tests也可以進行單條測試,方法同UI Tests一樣,點擊右側的小按鈕即可

    OK,看到這里,有沒有覺得可以解放自己的一部分勞動力了,很多需要來回點擊輸入看log的重復性工作被解放了

    Cool????...

    有木有?

    Conclusions(啰嗦)

    通過上面的簡單示例,你已經知道如何測試了,那么在寫測試代碼的時候,請盡量遵循以下幾條:

    • 測試方法一定要以test作為開頭前綴
    • 最好是一個模塊開一個Test Case,畢竟業務是分離的
    • 如果你已經做好的使用測試框架,那么就認真實踐TDD(Test - Driver Development)
    • 盡量使用單條測試,因為Command + U會執行你所有的測試

    測試代碼是必要的,可能很多同學都會在各類博客看過或聽說過TDD(Test - Driver Development),測試驅動開發在一定程度上可以保證代碼的質量,同時保證交付的效果如預期.

    當然辣,現實是,很多開發同學不寫測試代碼,樓主曾經見過不但不寫測試,連手動測試都不做的開發者,甚是可怕;而且,超自信,當bug出現的時候,信誓旦旦的說:一定是后臺的問題,我的代碼是不會有bug的????

    原文轉自:http://www.jianshu.com/p/2143182b9948

    老湿亚洲永久精品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>