2014年2月18日火曜日

Xcode5で既存のプロジェクトにUnittestを追加する

今までUnitTestというものは使ったことがなかった、というかどうやって使うのかわからなかったのだけど、とあるところで使っている人のソースを見せてもらって、「こりゃ、うまく使えば便利かも」と思った。

が、Xcode5でProjectを新規に作るなら勝手にテスト用プロジェクトも入るのでいいのだが、既存のプロジェクトにそれを追加するとなると、方法がわからなかった。
検索してもXcode4の時のはあっても5のはなかったり、間違ってたりで使えなかった。

ということで、一念発起して探しだした結果を公開。

(1)プロジェクトを開く。プロジェクトを選択状態にすると、情報が表示されるけど、その一番左上に小さな再生ボタンみたいなのを押す。

(2)表示が展開されてPROJECTとTARGETSが表示されるので、TARGETSの下のAdd Targetsをクリックする。

(3)するとターゲット追加ダイアログが表示されるので、Cocoa Touch Unit Testing Bundleを選択し、Nextを押す。

(4)必要情報を記入する。基本的には入力されているので、Organization NameとCompany Identiferのみ入力すればいいはず。すべて入力しないとFinishは押せない。

(5)するとこのようにテスト用プロジェクトが追加されるので、あとは*Tests.mにテスト用コードを記述していくだけ。


で、利用する上での注意。

・UnitTestはシミュレーター上でしか走らない
・XCT*()はマクロで、内部でselfを使うため関数内では使えない
XCTAssertEqual()では型まで正確に比較されてしまうようである。

  したがって、intunsigned longの比較では、数値が同じでも不一致判定される。
・何故かプロジェクト内ファイルのリンクが通らないことがあるので、その時はテストの中に同じファイルをコピーする必要がある(プロジェクトの下に別のプロジェクトがいるような階層構造の時)。ファイル更新時にはコピーすることを忘れないこと。多分Xcode5のバグ。

0 件のコメント:

コメントを投稿