単純なインターフェイスを備えたUIViewControllerを使用している場合の例を考えてみましょう。
@interface MainViewController : UIViewController
@end
viewDidLoadまたはviewDidAppearメッセージを受信すると、追加のビューを作成して配置します。
ユニットテストを行うときは、これらのビューをモックアップしたいので、インターフェイスを次のように変更する必要があります。
@interface MainViewController : UIViewController
@property (nonatomic) UIView *additionalView1
@property (nonatomic) UIView *additionalView2
@end
これを行うことにより、私は追加のビューを作成する責任を呼び出し側に移します。これは、私の意見では、カプセル化を破ります。
どうすればコントローラー内部の多くを公開しないようにできますか?