2021-12-11 23:31:31
PHPUnit のスタブとモックオブジェクトを少し調べたときの印象
印象
どちらも既存クラスの処理をテスト内で置き換えられるようです。ただ、自分が期待していた「クラス内の依存を置き換える」ような機能はやはり無いようでした。
createMock
で作成するモックオブジェクトはテストコード内で生成して、プロダクションコードに注入するやり方は出来るようです。
例では、タイプヒンティング付きのメソッド public function attach(Observer $observer)
にテストコード内で生成したモック $observer = $this->createMock(Observer::class);
を渡していました。
やはりテスト可能なコード設計は必要そうだなという感じです。テスト可能なコードになっていれば createMock
で生成せずとも、「テスト用のモックを作ればよくね?」という印象です。