結論
- スタブは、テスト中に呼び出される関数に対して予め定義された値を返す
- モックは、テスト中に呼び出される関数に対して、特定の値を返すだけでなく、呼び出された回数や呼び出し時の引数などを追跡することができる
- (追記) スタブは、テスト対象ではない関数の返り値を正しいものとして使用するために使う
- (追記)モックは、テスト対象ではない関数が呼び出されることを確認するために使う
モック、スタブとは
- モックとスタブは、テストを行う際に依存するオブジェクトや機能を置き換えるために使用されるテストダブルの一種
- このようなテストダブルを使用することで、テストをより独立させ、依存関係による影響を減らすことができる
スタブの説明
- スタブは、テストに必要な機能を模擬するために使用される
- スタブは、テスト中に呼び出される関数に対して予め定義された値を返すことができる
- これによって、テスト中にスタブが返す値を正しく処理するかどうかを検証することができる
- (追記)
- 例)外部APIを呼び出す場合に、APIの結果を置き換えるために使用する。
モックの説明
- モックは、スタブと同じように機能するが、テストに必要な機能を完全に置き換えることができる
- モックは、テスト中に呼び出される関数に対して、特定の値を返すだけでなく、呼び出された回数や呼び出し時の引数などを追跡することができる
- これにより、テスト中に関数が正しく呼び出され、正しい引数が渡されていることを検証することができる
- (追記)
- 例)外部APIを呼び出す場合に、APIが呼び出されたこと、呼び出された回数を確認するために使用する
まとめ
- スタブはテストに必要な機能を単純に置き換える
- モックはテストに必要な機能を置き換えるだけでなく、呼び出しや引数の追跡など、より詳細なテストができる
より正確な参考情報