PIYO - Tech & Life -

Xcodeでテストのときのみ特定のコードを実行する方法

iOS Xcode

テストコードのときのみ実行したいコードってありますよね?例えばサーバーのURLを変えたり、テスト用のデータを用意したりいろいろな用途があり得そうです。

シンプルにやるにはプリプロセッサマクロを使ってこんな風にやるのがよさそうです。

- (void)method
{
#ifdef TESTING
  [self hogehoge];
#endif
}

ではどうやって実現するか、順を追って説明します。

Configurationを新しく作る

Xcodeのプロジェクトの設定画面のinfoからConfigurationsを新しく作ります。

+ボタンをクリックし、Duplicate “Debug” Configurationを選び名前をTestingなどとします(テスト用の設定なのでDebugから複製すれば良いでしょう)。

;

プリプロセッサマクロを追加する

同じく設定画面からBuild Settingsのタブを開いてマクロを追加します。右上のウィンドウで絞り込みをすると楽。

Testing設定にTESTING=1というプリプロセッサマクロを追加します。

Edit Schemeする(何て呼べばいいの?)

これで最後です。Edit Schemeして、テスト時のConfigurationを先ほど作ったTestingに変えます。

まずはEdit Schemeの画面を開き、、、

左側の項目からTestを選んで、Build ConfigurationTestingに変更します。

これで、最初に例示したようなコードが動くようになりました。