[解決済み】Mockito - doReturn()とwhen()の相違点)
2022-04-03 18:13:47
質問
現在、Spring MVCアプリケーションで、Mockitoを使用してサービス層オブジェクトのモックを作成し、Controllerのメソッドをテストしているところです。しかし、Mockitoの仕様について読んでいるうちに、メソッド
doReturn(...).when(...)
と同等です。
when(...).thenReturn(...)
. そこで質問なのですが、同じことをするメソッドが2つあることの意味は何でしょうか、それとも
doReturn(...).when(...)
と
when(...).thenReturn(...)
?
何かご助言があればお願いします。
解決方法は?
スタブに関する2つの構文はほぼ同等です。 ただし
常に
使用
doReturn/when
はスタブ用ですが、場合によっては
できない
使用
when/thenReturn
. voidメソッドのスタブもその一つです。 その他にも、Mockitoのスパイを利用することや、同じメソッドを複数回スタブすることなどがあります。
ひとつは
when/thenReturn
が与えてくれるもの、それは
doReturn/when
これは、コンパイル時に返される値の型チェックを行うものです。 しかし、これはほとんど意味がないと思います。もし型が間違っていれば、テストを実行したときにすぐにわかります。
のみを使用することを強くお勧めします。
doReturn/when
. 1つの構文で事足りるのに、2つの構文を学ぶ意味はない。
での私の回答を参照されたい。 Mockitoの文法を形成する。 - という質問に対する、より詳細な回答があります。
関連
-
[解決済み] java.lang.ClassCastException: java.util.Arrays$ArrayList は java.util.ArrayList にキャストできません。
-
[解決済み] Javaでのスキャナが動作しない
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] StringBuilderとStringBufferの違いについて
-
[解決済み] wait()とsleep()の違いについて
-
[解決済み] Mockitoでvoidメソッドをモックする方法
-
[解決済み] JDKとJREの違いは何ですか?
-
[解決済み】HashMap、LinkedHashMap、TreeMapの違いについて
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] maven. -source 1.5ではラムダ式がサポートされていません。
-
[解決済み] JVMフラグCMSClassUnloadingEnabledは、実際に何をするのですか?
-
[解決済み] Javaでのスキャナが動作しない
-
[解決済み] ORA-01654: インデックスを拡張できません。
-
[解決済み] 1行目2列目でBEGIN_ARRAYを期待したが、BEGIN_OBJECTだった。
-
[解決済み] JavaにおけるMouseListenerとMouseAdapterの違いについて
-
[解決済み] Java の文字列インデックスが範囲外です。0 [閉店]
-
[解決済み] Javaコンパイラーエラー:ステートメントではありません
-
[解決済み] Mockitoでvoidメソッドをモックする方法
-
[解決済み] モッキート メソッドをスパイしようとすると、元のメソッドが呼び出される