[解決済み] モックされたメソッドに渡された引数を返すようにする
2022-03-22 11:29:33
質問
のようなメソッドシグネチャを考えてみましょう。
public String myFunction(String abc);
Mockitoは、メソッドが受け取ったのと同じ文字列を返すのを助けることができますか?
どのように解決するのですか?
MockitoでAnswerを作成することができます。例えば、Applicationというインターフェースに、myFunctionというメソッドがあるとします。
public interface Application {
public String myFunction(String abc);
}
以下は、Mockitoのアンサーを使ったテスト・メソッドです。
public void testMyFunction() throws Exception {
Application mock = mock(Application.class);
when(mock.myFunction(anyString())).thenAnswer(new Answer<String>() {
@Override
public String answer(InvocationOnMock invocation) throws Throwable {
Object[] args = invocation.getArguments();
return (String) args[0];
}
});
assertEquals("someString",mock.myFunction("someString"));
assertEquals("anotherString",mock.myFunction("anotherString"));
}
Mockito 1.9.5およびJava 8以降では、ラムダ式も使用可能です。
when(myMock.myFunction(anyString())).thenAnswer(i -> i.getArguments()[0]);
関連
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] Javaで文字列値からenum値を取得する方法
-
[解決済み] Javaでネストされたループから抜け出すには?
-
[解決済み] Javaで文字列を分割する方法
-
[解決済み] なぜゲッターとセッター/アクセッサーを使うのですか?
-
[解決済み] Javaで数値を小数点以下n桁に丸める方法
-
[解決済み] Mockitoでvoidメソッドをモックする方法
-
[解決済み] Mockitoを使用して特定のメソッドが呼び出されていないことを確認するにはどうすればよいですか?
-
[解決済み] メソッドの戻り値の型を汎用的にするにはどうすればよいですか?
-
[解決済み] Mockito : メソッド内で生成されたオブジェクトでメソッドが呼び出されたことを確認する方法?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
java.util.NoSuchElementException 原因解析と解決方法
-
スタイルシートとして解釈されるリソースが、MIMEタイプtext/htmlで転送される。
-
Dateが型に解決できない問題を解決する
-
Eclipseで "XXXX "の解決策を(型に)解決することができない
-
サーブレットクラスのインスタンス化エラーの解決法
-
エラーの解決方法 jarfile XXX.jarにアクセスできません。
-
スレッド "main" で例外発生 java.lang.ArrayIndexOutOfBoundsException: 0 at One1.main(One1.java:3)
-
マスキング このリソースにアクセスするには、完全な認証が必要です。
-
Eclipse起動エラー:javaは起動したが、終了コード=1を返した(ネット上の様々な落とし穴)
-
SocketTimeoutExceptionの解決方法です。読み込みがタイムアウトした