Skip to content
Latchkey

テストダブルとは?

テストダブルは、テスト中に本物の依存関係の代わりを務め、テスト対象のコードを分離して動かせるようにするオブジェクト全般を指します。その仲間には、stub(あらかじめ用意した値を返す)、mock(やり取りに対してアサーションする)、fake(軽量で動作する実装)、spy(呼び出しを記録する)が含まれます。これらは、遅い、非決定的、または利用できない依存関係をテストから取り除きます。

なぜ重要か

本物の依存関係、データベース、決済ゲートウェイ、サードパーティAPIは、テストを遅く、flakyに、あるいはCIで実行不可能にします。テストダブルはそれらを制御可能な代役に置き換え、ユニットテストを速く決定的に保ちます。トレードオフは、mockのしすぎによって、本物の統合が壊れていてもテストが通ってしまうことです。

関連する概念

  • stub、mock、fake、spyを含む
  • テスト対象のコードを依存関係から分離する
  • mockのしすぎは本物の統合failureを隠しうる

関連ガイド