Objective-CなどiOS関連の技術メモ。知識はここに投げ捨てて忘れる。

テストコードでプライベートメソッドにアクセスする

最終更新日 2013年07月21日 12:44

カテゴリを使ってクラスを拡張し、その中でプライベートメソッドのインタフェースを宣言すればよい。次の例は、TestMeクラスをテストするTestMeTestsの実装ファイル。このファイル内に、TestMeクラスの実装部だけに記述されているプライベートメソッドのインタフェースを宣言している。

上記例のようにテストの実装ファイル内でインタフェース宣言すると、宣言されたメソッドにアクセスできるのは、このファイル内部からに限定される。が、プライベートメソッドにまでアクセスする必要が生じるのは、大抵そのクラスに対応するテストクラスの中だけなので、さほど問題にはならない。

もし複数のテストクラスからプライベートメソッドへアクセスしたければ、プライベートメソッドのインタフェース宣言を別ファイルにすればよい。その場合、このヘッダファイルのターゲットをテストのみに限定しておくことで、テスト目的以外でのプライベートメソッドへの誤アクセスを防ぐことができる。

詳解 Objective-C 2.0 第3版

必読。こんなゴミサイトより、こっちを読むべき。

Amazonでみる

iPhoneプログラミングUIKit詳解リファレンス

必読。こんなゴミサイトより、こっちを読むべき。

Amazonでみる