2011-11-30 30 views
2

我正在使用OCUnit和Xcode 4.2向現有的iOS項目添加單元測試。我已經成功地添加了一個新的構建目標(按照說明在這裏:http://twobitlabs.com/2011/06/adding-ocunit-to-an-existing-ios-project-with-xcode-4/),並設置了一些簡單的示例測試,以檢查是否可以運行測試並且它們按預期工作。在XCode中組織iOS OCUnit測試文件

我的問題是關於添加更多的測試文件,以及如何組織它們。現有的代碼庫非常廣泛,並且包含了數百個我們需要遲早添加測試的類。很明顯,將所有測試放在自動生成的「UnitTests.m」文件中將是瘋狂的。我發現我可以使用'Objective-C Test Case Class'模板添加更多文件,但是我不清楚這與XCode添加測試目標時生成的總體「UnitTest.m」有何聯繫。

XCode是否只是爲測試目標查找所有測試文件並運行所有測試?如果是這樣,爲每個我正在測試的類生成一個新的測試文件,並且在主'UnitTests.m'文件中沒有任何東西是有意義的。如果是這樣,我可以安全地刪除該文件,因爲它不包含任何測試?還是需要保留以便在其他文件中運行其他測試?

回答

5

Xcode最初設置爲運行單元測試目標成員文件的所有單元測試。在你的情況下,你應該爲你正在測試的每個類創建一個新的測試文件。創建新文件時,請確保將文件添加到單元測試目標,而不是應用程序目標。 Xcode最初將文件添加到應用程序目標。

您可以刪除UnitTest.m文件。您創建的每個單元測試文件都包含足夠的信息來運行測試。您也可以使用方案編輯器來控制Xcode如何運行您的測試。

的Xcode 5更新

的Xcode 5將測試導航,讓你運行單個測試,運行所有測試的測試類,或運行所有測試。測試導航器減少了使用方案編輯器來控制Xcode如何運行測試的需要。