10

OCUnit と Google Tool Box のどちらかを選択しようとしています。好みはありますか。どちらかをお勧めしますか?なぜですか? 2のいずれかについてのあなたの経験について聞くことに非常に興味があります.

私がそれらの両方で抱えている主な問題は、テストされたメソッドでのクラッシュの管理です(例:BAD ACCESS)。クラッシュが発生したクラスを教えてくれるものはありませんでした!!!

Google ツール ボックスを使用すると、実行されているテスト スイートを確認できますが、テスト ケースは確認できません (テスト スイートに 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];
 }

前もってありがとう、ヴィンセント

4

2 に答える 2

3

どうせならGTBで行こうかな…

xCode 3.2 では、OCUnit のエラーと警告がコード内に表示されません。それは既知の問題のようです: lhttp://osdir.com/ml/xcode-users/2009-10/msg00216.html

GTB を使用すると問題なく動作します。信じられませんが、GTB は OCUnit よりも新しいバージョンの xCode とよりよく統合されているようです....

単体テストのデバッグには何も必要ありません。最初からうまく機能します。(xCode では、一連の設定が必要です: http://chanson.livejournal.com/119578.html

GTB を使用すると、デバイス上でテストを実行でき、UI テスト用のツールを使用できます (偽の UIView 階層を作成して、実行時のものと比較できるようです)。UI の自動テスト (高価で維持が難しい) については懐疑的ですが、それは素晴らしい機能です!

http://code.google.com/p/google-toolbox-for-mac/wiki/CodeVerificationAndUnitTesting

于 2009-12-15T11:07:58.133 に答える
0

ところで、Google Toolboxは、誰かが疑問に思っていた場合に備えて、テストケース開始メッセージを出力するようになりました;-)

于 2010-07-01T19:31:09.300 に答える