これらの手順に従って、通常の単体テストバンドルをプロジェクトに正常に追加しました。テストターゲットをビルドして実行でき、1つのサンプルテストが正常に機能します。
特定のクラスをテストしようとすると、物事は下り坂になり始めます。
私のアプリでは、私の.hファイルの多くが.pchファイルに含まれています。また、MyModelは他のクラスと相互作用します。このため、MyModel.hをインポートしてテストで使用すると、他のファイルを読み込めなかったという事実に関連するエラーが多数発生します。これに対する私の回避策は、テストターゲットの.pchファイルに同じファイルを追加し、それらのファイルをテストターゲットの「コンパイルソース」リストに追加することです。
したがって、これらのクラスをテストターゲットと.pchに追加して実行しようとすると、無限ループに陥り、常により多くのファイルが必要になります。最終的にすべての.mをプロジェクトに追加しても、テストの実行は見事に失敗します。
#import "MyModel.h"
テストファイルに簡単に書き込んでテストを書き込んだり実行したりできるように、プロジェクトを正しく設定する必要がある方法はありますか?私のプロジェクトがテストを不可能にするような方法で構成されている可能性はありますか?
更新1 カールの提案に従いましたが、ステップ2を通過できません。
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_MyModel", referenced from:
objc-class-ref in BaseUnitTests.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
この時点で、MyModel.mを「ビルドフェーズ/コンパイルソース」に追加し、他のすべての.mファイルをテストターゲットの「コンパイルソース」に追加するという無限の道をたどります。