3

OCMock (1.55) と XCode 3.2.3の最新バージョンを使用しています。

プロジェクトにテスト バンドル ターゲットを作成しました。テストで OCMock を使用する最良の方法は何ですか? OCMock.framework をテスト バンドルに追加すると、次のビルド エラーが表示されます。

  "_OBJC_CLASS_$_OCMockObject", referenced from:
  objc-class-ref-to-OCMockObject in NotificationTests.o
  ld: symbol(s) not found
  collect2: ld returned 1 exit status
4

3 に答える 3

4

私は同じ問題を抱えていました、ここに私がそれを解決した方法があります:

  • ocmock.framework、ファイルのコピー フェーズ、および ocmock ヘッダーにリンクするすべての検索パスを削除します。

  • ocmock svn リポジトリから最新バージョンをチェックしてください: http://svn.mulle-kybernetik.com/OCMock/trunk

  • OCMockPhoneSim ターゲットをビルドする

  • プロジェクト フォルダーに libOCMock.a と Headers フォルダーをコピーします。

  • libOCMock.a をフレームワークに追加し、ターゲット ライブラリの検索パスにヘッダー フォルダーへのリンクを追加します。

それはうまくいきます!

お役に立てれば。

于 2010-07-23T10:07:55.033 に答える
1

Colin Barrett の「OCMock と iPhone」チュートリアルを参照してください。

于 2010-07-08T14:23:52.777 に答える
0

user3135374 の回答は、主にこれを実現するのに役立ちました。

追加情報:

  • SDK は iPhone Simulator 4.0 である必要があります。これは、3.2 には単体テストを適切に実行できないというバグがあるためです。多くの人がそれについて不平を言っています。これを Unit Test ターゲットの BaseSDK として設定しました。

  • その他のリンカー フラグ "-ObjC -force_load $(PROJECT_DIR)/path/to/libOCMock.a" を単体テスト ターゲットに追加する必要があります。そうしないと、多くの実行時に "認識されないセレクターがインスタンスに送信されました" エラーが発生します。

  • 単体テストを持つターゲットが必要な場合は、実際にデバッグする (ブレークポイントを設定する) ことができるこのチュートリアルに従ってください: http://www.lostechies.com/blogs/scottdensmore/archive/2010/07/24/debugging-unit-tests-for -iphone-ipad.aspx

OCMock フォーラムのこのスレッドには、使用できるサンプル プロジェクトがあります。

http://www.mulle-kybernetik.com/forum/viewtopic.php?f=4&t=73&p=119#p119

于 2010-07-27T16:30:44.840 に答える