はじめに PHPのモックフレームワークであるMockeryを使ったテストコードとサンプルケースで、モックとスタブの違いを自分なりに噛み砕いて説明してみます。 対象読者はMockery使ったことあるけどいまいちモックとスタブの違いがわからない人です。 モックとは テスト対象が依存している他のクラスのメソッドを、テスト対象が期待通り呼び出しているか検査するためのもの。 似てるけど違う、スタブとは テスト対象が依存している他のクラスの挙動に影響を受けないように、事前に定められた応答をするもの。 モックと違うところは、検査したい観点が違う。モックはテスト対象が依存クラスを使って期待したメッセージングをしているか確認する。 わからん コードで説明してみる Aさんは「2つの整数を足し算して答えが3の倍数ならアホになる」振る舞いをする人だと仮定します。 Aさんは「計算できる何か」が無いと足し算できません