我試圖在OCUnit和Google工具箱之間進行選擇,您是否有任何偏好,會推薦一個或另一個,爲什麼? 我會聽到任何的2單元測試和TDD,OCUnit與Google工具箱
主要的問題我已經與他們兩個您的經驗很感興趣,是崩潰的測試方法(例如:BAD ACCESS)的同治 他們都不是能告訴我在什麼課上發生了事故!
與谷歌工具盒,我可以看到它的測試套件正在運行,但沒有測試的情況下(怎麼是你應該做的,當你的測試套件有50個測試用例?)
用的OCUnit我至少可以看到什麼樣的測試案例在什麼樣的測試套件中導致了崩潰
以下是消息的種類我有GTB:
Executed 0 tests, with 0 failures (0 unexpected) in 0.000 (0.000) seconds
Test Suite 'LogicTests' started at 2009-12-14 18:03:15 +0100
/Users/admin/Documents/Tests/GTBTest/RunIPhoneUnitTest.sh: line 122: 688 Segmentation fault "$TARGET_BUILD_DIR/$EXECUTABLE_PATH" -RegisterForSystemEvents
Command /bin/sh failed with exit code 139
我可以看到,這是它的測試套件「LogicTests」發起的碰撞,但僅此而已。
用的OCUnit這裏是同樣的錯誤消息:
Test Suite 'LogicTests' started at 2009-12-14 17:51:26 +0100
Test Case '-[LogicTests testFail]' started.
/Developer/Tools/RunPlatformUnitTests.include: line 415: 536 Segmentation fault "${THIN_TEST_RIG}" "${OTHER_TEST_FLAGS}" "${TEST_BUNDLE_PATH}"
至少具有的OCUnit我可以跟蹤哪些測試案例是正在運行,並最終對其進行調試(但是這可能需要花費很長的時間,沒有任何班級和行號信息...)
你如何處理這些問題?
在此先感謝。
PS:這裏是如何重現該問題,這是非常簡單的:
只需創建一個類與崩潰時,這就是所謂的(這發生在你正在做TDD的全部時間)的方法:
- (void) crashMethod {
NSMutableArray *crashArray;
[crashArray addObject:[NSObject new]];
}
,然後創建調用此方法測試案例:
- (void) testFail {
ClassToTest *test = [[ClassToTest alloc] init];
[test crashMethod];
[test release];
}
由於提前, 文森特
@ user142764:你怎麼跟GTB然後調試單元測試?當然你還需要一個自定義可執行文件? – jkp 2010-02-13 10:56:28
GTB沒有那麼好:因爲你使用普通的目標來運行你的測試,你可以調試它! 只需編寫一個測試,在其中放置一個斷點,然後從菜單執行Run-> Debug,它就是:您正在逐步調試您的測試。 – user142764 2010-03-02 16:00:52