全部文章目錄:http://my.oschina.net/ChenTF/blog/677112html
本篇文章地址: http://my.oschina.net/ChenTF/blog/677309git
會持續的更新全部歷史文章, 因此收藏的話請收藏上面的地址。github
一個工做空間能夠包含多個項目,一個項目能夠包含多個目標(生成物)。express
一個項目中根據運行的targets不一樣,能夠進行不一樣的編譯設置,project是基礎父類,targets是子類,targets的設置會覆蓋project的設置。緩存
單元測試是在一個新的target上進行的設置,這樣就不會影響程序開發,編譯。函數
在XCode7中建立一個項目時默認是選中建立測試target的,若是沒有,建立方法以下:File -> New -> target -> UITest/UnitTest,建立完成後會自動建立對應的文件夾。單元測試
使用該UnitTest測試一些代碼邏輯,使用UITest測試UI的點擊交互邏輯。測試
說明:ui
說明:spa
調用:
一個測試是否經過,是須要經過XCTassert類來進行驗收的,XCTAssert是 一系列宏方法,提供了不少的判斷(下面會列舉)。
若是經過則是在方法前是√,沒有打印;若是失敗則方法前是×,打印。(看上圖)
打印:
測試用例列表:
參考地址:http://my.oschina.net/u/1418722/blog/340194?fromerr=RUMiSWBO
XCTFail(...) 任未嘗試都會測試失敗,...是輸出的提示文字。(後面都是這樣) XCTAssertNil(expression, ...) expression爲空時經過,不然測試失敗。 expression接受id類型的參數。 XCTAssertNotNil(expression, ...) expression不爲空時經過,不然測試失敗。 expression接受id類型的參數。 XCTAssert(expression, ...) expression爲true時經過,不然測試失敗。 expression接受boolean類型的參數。 XCTAssertTrue(expression, ...) expression爲true時經過,不然測試失敗。 expression接受boolean類型的參數。 XCTAssertFalse(expression, ...) expression爲false時經過,不然測試失敗。 expression接受boolean類型的參數。 XCTAssertEqualObjects(expression1, expression2, ...) expression1和expression1地址相同時經過,不然測試失敗。 expression接受id類型的參數。 XCTAssertNotEqualObjects(expression1, expression2, ...) expression1和expression1地址不相同時經過,不然測試失敗。 expression接受id類型的參數。 XCTAssertEqual(expression1, expression2, ...) expression1和expression1相等時經過,不然測試失敗。 expression接受基本類型的參數(數值、結構體之類的)。 XCTAssertNotEqual(expression1, expression2, ...) expression1和expression1不相等時經過,不然測試失敗。 expression接受基本類型的參數。 XCTAssertEqualWithAccuracy(expression1, expression2, accuracy, ...) expression1和expression2之間的任何值都大於accuracy時,測試失敗。 expression一、expression二、accuracy都爲基本類型。 XCTAssertNotEqualWithAccuracy(expression1, expression2, accuracy, ...) expression1和expression2之間的任何值都小於等於accuracy時,測試失敗。 expression一、expression二、accuracy都爲基本類型。 XCTAssertGreaterThan(expression1, expression2, ...) expression1 <= expression2時,測試失敗。 expression爲基本類型 XCTAssertGreaterThanOrEqual(expression1, expression2, ...) expression1 < expression2時,測試失敗。 expression爲基本類型 XCTAssertLessThan(expression1, expression2, ...) expression1 >= expression2時,測試失敗。 expression爲基本類型 XCTAssertLessThanOrEqual(expression1, expression2, ...) expression1 > expression2時,測試失敗。 expression爲基本類型 XCTAssertThrows(expression, ...) expression沒拋異常,測試失敗。 expression爲一個表達式 XCTAssertThrowsSpecific(expression, exception_class, ...) expression沒拋指定類的異常,測試失敗。 expression爲一個表達式 exception_class爲一個指定類 XCTAssertThrowsSpecificNamed(expression, exception_class, exception_name, ...) expression沒拋指定類、指定名字的異常,測試失敗。 expression爲一個表達式 exception_class爲一個指定類 exception_name爲一個指定名字 XCTAssertNoThrow(expression, ...) expression拋出異常時,測試失敗。 expression爲一個表達式 XCTAssertNoThrowSpecific(expression, exception_class, ...) expression拋出指定類的異常,測試失敗。 expression爲一個表達式 XCTAssertNoThrowSpecificNamed(expression, exception_class, exception_name, ...) expression拋出指定類、指定名字的異常,測試失敗。 expression爲一個表達式 exception_class爲一個指定類 exception_name爲一個指定名字
參考:http://www.cnblogs.com/graphics/p/4117353.html
Target membership是指XCode中,一個文件屬於哪個工程,在XCode左側的工程面板中選中一個文件,在XCode右側的屬性面板中會顯示其Target Membership,以下圖。
當前的文件AppDelegate.m屬於書譜這個Target。
Target Membership的一些屬性。
之前遇到一個錯誤,就是UIImage建立的時候返回nil,仔細查看發現,圖片的Target Membership選項沒有勾上。這個錯誤比較難以發現,特此記之。
在測試本地存儲是,若是須要一些二進制文件的支持,則test targert也須要引入相應的文件(配置和正常項目需同樣)。
提醒:
每次修改完配置文件,建議先Clean(Command+Shift+K)緩存,再編譯。
pch 和main target設置成一直, 注意Precompile Prefix Header選項。
當項目中有pod時, 在測試文件中引用pods的文件, 提示找不到, 錯誤以下:
解決方案: 設置PROJECT的Configurations
兩種方案
一: 設置plist文件與build一致
二: 將info.plist路徑改爲build target的路徑
https://github.com/ChenTF/Experiences/tree/master/XCodeSetting