Xcode が提供する組み込みのテスト フレームワークを使用して、アプリケーション コードがアプリとして実行されているのではなく、テスト ランナーによって実行されているかどうかを判断する方法はありますか?
つまり、アプリケーション コードで次のようなことができるかどうか疑問に思っています。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// ...
if (IsUnitTestRunning()) {
[self useDefaultSettings];
[self showDefaultViewController];
}
else {
[self restoreUserSettings];
[self restoreUserInterface];
}
// ...
}
いくつかのプリコンパイラ マクロを定義する新しい構成を作成し、テストの実行時にその構成をビルドして使用するように Xcode スキームを設定したり、テストの実行時にアプリ内のある種のグローバル変数を YES に設定したりできることはわかっていますが、これを処理するために、OCUnit または Xcode に既に組み込まれているものがあるかどうか疑問に思っています。