MockitoでNULL値に対するMatchers.any()
質問
次のようなオブジェクトがあるとします。
objectDemo
というメソッドを呼び出しているとします。
objectDemoMethod
を 2 つのパラメータ
String
と
null
. さて,このメソッドが呼ばれたことをMockitoで検証してみたいと思います.
objectDemo.objectDemoMethod("SAMPLE_STRING", null);
このように書きました。
Mockito.verify(objectDemo, Mockito.times(1)).objectDemoMethod(Matchers.any(String.class), null);
と表示されますが、エラーになります。
null値に対する引数マッチャーの使用は無効です。
を渡す他の方法はありますか?
null
の値を渡す他の方法はありますか?
どのように解決するのですか?
引数マッチャーを片方の引数だけに使用し、もう片方には使用していないため、表示されるエラーメッセージは予想されたものです。以下より
Matchers
Javadocです。
引数マッチャーを使っている場合。 すべての引数 はマッチャーによって提供されなければなりません。
したがって、この修正はメソッドの2番目のパラメータにもマッチャーを使用することです。この場合、以下のようなマッチャーになります。
null
. MockitoやJavaのバージョンにもよりますが。
-
Mockito 2 からは
ArgumentMatchers.isNull()
. Java 8 以上で動作します。verify(objectDemo, times(1)).objectDemoMethod(any(String.class), isNull());
Java 7またはそれ以前のバージョンでは、型推論が呼び出されたメソッドの型を考慮しないため、これを動作させるには明示的なキャストが必要になることに注意してください。
verify(objectDemo, times(1)).objectDemoMethod(any(String.class), (String) isNull());
-
Mockito 1を使用している場合、以下のように
Matchers.isNull(clazz)
の代わりにverify(objectDemo, times(1)).objectDemoMethod(any(String.class), isNull(String.class));
Java ≦ 7またはMockito 1の場合、例では、第2パラメータがタイプ
String
である場合、メソッド・パラメーターの実際の型に置き換える必要があります。
関連
-
Jsoup-Crawlingの動作
-
強制型変換について
-
無効なメソッド宣言
-
[解決済み] なぜパスワードにはStringではなくchar[]が好まれるのですか?
-
[解決済み] Javaで配列に特定の値が含まれているかどうかを判断するにはどうすればよいですか?
-
[解決済み] Javaで文字列値からenum値を取得する方法
-
[解決済み] 整数の平方根が整数であるかどうかを判断する最速の方法
-
[解決済み] Mockitoでvoidメソッドをモックする方法
-
[解決済み] Mockitoを使用して特定のメソッドが呼び出されていないことを確認するにはどうすればよいですか?
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
アクセス制限です。タイプ 'Application' は API ではない(必要なライブラリに制限がある)。
-
プロジェクトの依存関係を解決できない。
-
StringBuilderが投げるArrayIndexOutOfBoundsExceptionの探索
-
SpringBoot 起動エラー java.nio.charset.MalformedInputException: 入力長 = 2 解決
-
セミコロン期待値エラー解決
-
FindBugの使用概要
-
Javaがエラーで実行される、選択が起動できない、最近起動したものがない
-
Web Project JavaでPropertiesファイルを読み込むと、「指定されたファイルがシステムで見つかりません」というソリューションが表示されます。
-
Java:未解決コンパイル問題の解決方法
-
Java JDKのダイナミックプロキシ(AOP)の使用と実装の原理分析