バリデーションダブル
バリデーションダブルは、通常のダブルよりも厳格な代替手段であり、検証される内容について保証を提供します。バリデーションダブルを使用すると、RSpecはスタブ化されるメソッドが、利用可能な基礎オブジェクトに実際に存在することを確認します。通常のダブルよりもバリデーションダブルを使用することを推奨します。
基礎オブジェクトやクラスが定義されていない場合は、チェックは行われませんが、基礎オブジェクトが存在する場合(フルスペックの実行または明示的な共同作業者の事前読み込みによる場合)、無効なメソッドがスタブ化されているか、または無効な引数の数でメソッドが呼び出されている場合には、失敗が発生します。
この二重アプローチにより、コンポーネントを独立して迅速にテストすることができる一方で、ダブルが完全なフィクションではないことを確信することができます。独立してテストすることは任意ですが、サードパーティのコンポーネントに依存しないクラスには推奨されます。