作為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

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97