[解決済み] いつモックすればいい?
2022-04-22 18:13:37
質問
モックとフェイクオブジェクトについての基本的な理解はありますが、いつ、どこでモックを使うべきか、特に次のようなシナリオに適用する場合の感覚がよくわかりません。 ここで .
解決方法は?
ユニットテストは、1つのメソッドを通して1つのコードパスをテストする必要があります。 あるメソッドの実行がそのメソッドの外側を通り、別のオブジェクトに移り、そしてまた戻ってくるとき、依存関係が発生します。
そのコードパスを実際の依存関係でテストする場合、それはユニットテストではなく、統合テストです。 それは良いことですし、必要なことですが、ユニットテストではありません。
依存関係にバグがある場合、テストは誤検出を返すような影響を受けるかもしれません。 例えば、あなたは依存関係に予期しないnullを渡すかもしれませんし、依存関係はそれが行うように文書化されているようにnullで投げないかもしれません。 その場合、テストは null 引数の例外に遭遇せず、合格となります。
また、テスト中に依存オブジェクトが正確に望むものを返すようにすることが、不可能ではないにしても、難しいことに気づくかもしれません。 これには、テスト中に期待通りの例外をスローすることも含まれます。
その依存関係を置き換えるのがモックです。 依存オブジェクトを呼び出す際に期待値を設定し、 望むテストを行うために依存オブジェクトが返すべき正確な値を設定し、 そして例外処理コードをテストできるようにどのような例外をスローするかを設定します。 このようにして、問題のユニットを簡単にテストすることができます。
TL;DR: あなたのユニットテストが触れるすべての依存関係をモックにする。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] NUnit vs. MbUnit vs. MSTest vs. xUnit.net [終了しました。]
-
[解決済み】Angular 2 Unit Tests。名前 'describe' が見つからない
-
[解決済み] GUIをユニットテストするにはどうしたらいいですか?
-
[解決済み] ユニットテストとは、どのようなもので、どのように行うのですか?[重複あり]
-
[解決済み] Go の testing パッケージを使用してテストのセットアップを行うにはどうすればよいですか?
-
[解決済み] Junit: 統合テストと単体テストの分割
-
[解決済み] Go言語でのテストに適したパッケージの命名法
-
[解決済み] TDDとBDDの主な違いは何ですか?[クローズド]
-
[解決済み] 例:無効なutf8文字列?
-
[解決済み] Enzyme - How to access and set <input> value?