設計で解決するモックとスタブの使い分け by meihei

PHPerKaigi 2025
レギュラートーク(20分)

設計で解決するモックとスタブの使い分け

app1e_s meihei app1e_s

テストコードを書く中で、「モックとスタブの使い分けが分からない」「どちらを使うべきか迷う」と感じたことはありませんか?その原因は、テストコードの書き方そのものではなく、オブジェクト設計の曖昧さに起因している場合があります。

本トークでは、モックやスタブを「どう使うか」を直接学ぶのではなく、オブジェクト設計のアプローチを通じて、結果として自然に正しい使い分けができる状態を目指します。

具体的には、次のステップを通じてオブジェクト設計を進め、テストコードを構築する方法を解説します:

  1. 依存するオブジェクトを明確にする
  2. コマンドメソッドとクエリメソッドを明確に分離する
  3. システム境界を超えるときにモックやスタブを使用する

これらのステップを経ることで、モックとスタブの選択が「意図した設計の結果」として整理され、テストコードを書く際に迷う必要がなくなる状態になるでしょう。