[解決済み] Mockitoを使用する際のモッキングとスパイの違いは何ですか?
2022-04-25 15:31:54
質問
Mockitoのスパイを使用する場合、どのようなユースケースが考えられますか?
すべてのスパイユースケースは、callRealMethodを使用したモックで処理できるように思います。
1つの違いは、ほとんどのメソッドコールを本物にしたい場合、モックとスパイを使うことでコードの行数を減らせることです。それとも、私がより大きな絵を見逃しているのでしょうか?
解決方法は?
答えは ドキュメント :
リアルパーシャルモック (1.8.0以降)
社内での議論やメーリングリストでの議論を経て、ついにMockitoにパーシャルモックのサポートが追加されました。以前は、部分的なモックはコード・スモーフィングであると考えていました。しかし、私たちはパーシャルモックの正当な使用例を見つけました。
リリース1.8以前はspy()が本当の部分モックを生成せず、一部のユーザを困惑させていました。スパイについてもっと読む。 こちら または spy(Object) メソッドの javadoc を参照してください。
callRealMethod()
の後に導入されました。
spy()
しかし、後方互換性を確保するために、spy()はもちろん残されています。
そうでなければ、あなたの言うとおり、スパイのメソッドはスタブされていない限りすべて本物です。モックのメソッドは、以下の場合を除いてすべてスタブです。
callRealMethod()
が呼び出されます。一般に、私は
callRealMethod()
を使うことを強制されないからです。
doXxx().when()
イディオムではなく、従来の
when().thenXxx()
関連
-
このラインで複数のマーカーを解決する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] StringBuilderとStringBufferの違いについて
-
[解決済み] 整数の平方根が整数であるかどうかを判断する最速の方法
-
[解決済み] Javaで数値を小数点以下n桁に丸める方法
-
[解決済み] wait()とsleep()の違いについて
-
[解決済み] モックとスタブの違いは何ですか?
-
[解決済み] JDKとJREの違いは何ですか?
-
[解決済み] フェイク、モッキング、スタビングの違いとは?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
IllegalArgumentException この例外を解決する方法
-
undefinedeclipse エラー。この行に複数のアノテーションが見つかりました: - 文字列を型解決に解決できない
-
Eclipseで "XXXX "の解決策を(型に)解決することができない
-
Eclipseでプロジェクトエクスプローラービューとパッケージエクスプローラービューを使う
-
サーブレットクラスのインスタンス化エラーの解決法
-
Methodのinvokeメソッド実装のJavaリフレクション
-
spring aop アドバイスからの Null 戻り値が、サマリーのプリミティブ戻り値と一致しない。
-
[オリジナル】java学習ノート【II】よくあるエラー クラスパス上のクラスファイルが見つからない、またはアクセスできない場合
-
Exception: java.util.NoSuchElementException: 行が見つかりません
-
[解決済み] フェイク、モッキング、スタビングの違いとは?