這個時候我們可以在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????...
有木有?
通過上面的簡單示例,你已經知道如何測試了,那么在寫測試代碼的時候,請盡量遵循以下幾條:
test
作為開頭前綴Test Case
,畢竟業務是分離的TDD(Test - Driver Development)
Command + U
會執行你所有的測試
測試代碼是必要的,可能很多同學都會在各類博客看過或聽說過TDD(Test - Driver Development)
,測試驅動開發在一定程度上可以保證代碼的質量,同時保證交付的效果如預期.
當然辣,現實是,很多開發同學不寫測試代碼,樓主曾經見過不但不寫測試,連手動測試都不做的開發者,甚是可怕;而且,超自信,當bug
出現的時候,信誓旦旦的說:一定是后臺的問題,我的代碼是不會有bug
的????
原文轉自:http://www.jianshu.com/p/2143182b9948