[解決済み】Mockito: プライベートな@Autowiredフィールドに実際のオブジェクトをインジェクトする
2022-04-03 13:15:04
質問
Mockitoの
@Mock
と
@InjectMocks
でアノテーションされたプライベートフィールドに依存性を注入することができます。
@Autowired
:
@RunWith(MockitoJUnitRunner.class)
public class DemoTest {
@Mock
private SomeService service;
@InjectMocks
private Demo demo;
/* ... */
}
そして
public class Demo {
@Autowired
private SomeService service;
/* ... */
}
今度は
リアル
オブジェクトをプライベートな
@Autowired
フィールド(セッターなし)。これは可能なのでしょうか、それともモックの注入だけに限定されたメカニズムなのでしょうか?
解決方法は?
使用方法
@Spy
アノテーション
@RunWith(MockitoJUnitRunner.class)
public class DemoTest {
@Spy
private SomeService service = new RealServiceImpl();
@InjectMocks
private Demo demo;
/* ... */
}
を持つすべてのフィールドを考慮します。
@Mock
または
@Spy
でアノテーションされたインスタンスに注入される可能性がある候補です。
@InjectMocks
アノテーションを使用します。上記の場合
'RealServiceImpl'
のインスタンスが 'demo' に注入されます。
詳細はこちらをご覧ください。
関連
-
[解決済み] Jdbctemplate の文字列に対するクエリです。EmptyResultDataAccessException: 不正な結果サイズ:期待値1、実際0
-
[解決済み] Java - JTextFieldが空かどうかを確認する
-
[解決済み] Cloneable throws CloneNotSupportedException
-
[解決済み] 警告: コンテキスト初期化中に例外が発生 - 更新の試みはキャンセルされました。
-
[解決済み] ファイルを作成せずに、ファイルが存在するかどうかをチェックする
-
[解決済み] スリーピング中のスレッドが割り込まれ、データベースへの接続が失われる
-
[解決済み] SubclipseとJavaHLのインストールで頭を悩ます
-
[解決済み] IntegerからBigIntegerへの変換
-
[解決済み] プライベートメソッド、フィールド、インナークラスを持つクラスをテストするにはどうすればよいですか?
-
[解決済み] Spring Frameworkの@Injectと@Autowiredの違いは何ですか?どのような条件でどちらを使うか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] HashMapのtoString関数はなぜ異なる順序で自分自身を印刷するのですか?
-
[解決済み] javaで部分クラスを実装する方法
-
[解決済み] Java UnknownFormatConversionException
-
[解決済み] Eclipse- Dynamic Web Module 3.0 で新しいプロジェクトを作成するときに Java 1.6 以降が必要なエラーが発生する。
-
[解決済み] 要素 'beans' の宣言が見つかりません。
-
[解決済み] mavenのコンパイルに失敗するのはなぜですか?
-
[解決済み] ORA-01654: インデックスを拡張できません。
-
[解決済み] Apache Camelのログに簡単なテキストを記録する
-
[解決済み] Javaにおけるシンボリック参照
-
[解決済み] どのように配列の10未満の値(x * 2)を倍増するコードを取得するには?(Java)