モック
Test Doubleによる定義では、事前にどうメソッドが呼び出されるかの期待値を持っており、期待通りでない場合例外を投げるようなオブジェクトのこと avashe.iconフェイクオブジェクト+値の検証 という理解であってる?
モックを使うべきかどうかは、テスト対象にとって管理下(制御できない)にない外部依存とのコミュニケーション「のみ」。でないとテストが壊れやすくなる。
ドメインにもよるが、例えばメールサービスが該当する
テスト対象のアプリケーションのみによって完全に制御可能な依存はモックではなく実際のインスタンスを使うべき
e.g. そのアプリケーションしか使わないDB
管理下にある依存をモックしてしまうとリファクタリングに対する耐性がなくなる
更に、検証すべきは管理下にない依存とのコミュニケーションのみで、スタブを呼び出したことの検証はすべきではない
je6bmq.iconモックといったときにTest Doubleにおけるモックと(これらすべてをまとめて)モックと呼ぶことがあるが、その表現を借りると検証すべきはTest Doubleにおけるモックの検証のみという理解