[解決済み] MockitoでSpringの自動配線された@Valueフィールドをモックするにはどうすればよいですか?
2022-04-20 03:37:17
質問
Spring 3.1.4.RELEASEとMockito 1.9.5を使用しています。 私のSpringクラスで私は持っています。
@Value("#{myProps['default.url']}")
private String defaultUrl;
@Value("#{myProps['default.password']}")
private String defaultrPassword;
// ...
私のJUnitテストから、現在このように設定されています。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "classpath:test-context.xml" })
public class MyTest
{
私は "defaultUrl" フィールドの値をモック化したいと思います。 他のフィールドはそのままにして、"defaultUrl"フィールドだけモック値にしたいのです。 また、私は明示的な "setter" メソッドを持っていないことにも注意してください (例えば
setDefaultUrl
また、テストのためだけにクラスを作成することもありません。
そうすると、その1つのフィールドの値をモック化するにはどうしたらいいでしょうか?
どのように解決するのですか?
Springの魔法を使えば
ReflectionTestUtils.setField
を使用することで、コードに一切修正を加える必要がありません。
のコメントは ミハエル・ストークマール がその例です。
使用
ReflectionTestUtils.setField(bean, "fieldName", "value");
を起動する前にbean
メソッドをテストすることができます。
チェックアウト これ チュートリアルでさらに詳しい情報が得られますが、この方法はとても簡単なので、おそらく必要ないでしょう。
アップデイト
Spring 4.2.RC1の導入以降、クラスのインスタンスを提供しなくても静的フィールドを設定することが可能になりました。以下を参照してください。 これ の部分と これ コミットします。
関連
-
[解決済み] ResourceBundleViewResolverでviews.propertiesが必要な理由
-
SpringBoot の例外です。クラスパスリソースに定義された名前 'entityManagerFactory'を持つビーンの作成エラー
-
[解決済み] クラスパス上にSpring WebApplicationInitializerの型が検出されない
-
[解決済み] Mockitoでvoidメソッドをモックする方法
-
[解決済み] Spring Frameworkの@Injectと@Autowiredの違いは何ですか?どのような条件でどちらを使うか?
-
[解決済み] Spring の @Autowired フィールドが NULL になっているのはなぜですか?
-
[解決済み] Mockitoを使用して、あるメソッドをモックし、他のメソッドをモックしない
-
[解決済み] Springの@Autowiredの使い方を理解する
-
一致するビーンは1つだと思ったが、2つ見つかった:onedbJdbcTemplate,twodbJdbcTemplate
-
[解決済み】Spring @Autowire プロパティとコンストラクタの違いについて
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Spring Hibernate - 現在のスレッドのトランザクション同期セッションを取得できませんでした。
-
[解決済み】Unit TestからApplicationContextを読み込むのに失敗しました。FileNotFound
-
Tomcat server_A 子コンテナの起動に失敗しました。
-
ServletContextリソース[/WEB-INF/springmvc-servlet.xml]を開くことができませんでした。
-
[解決済み】BeanFactoryとApplicationContextの比較
-
[解決済み】ビーン初期化完了後にメソッドを呼び出すには?
-
[解決済み】データソースの設定に失敗しました:'url'属性が指定されておらず、埋め込まれたデータソースが設定できませんでした。
-
[解決済み] Springでプログラム的にプロパティファイルにアクセスする?
-
[解決済み] Spring MVCのテストで "Circular view path "例外を回避する方法
-
[解決済み] コンストラクタの引数を必要とする Bean を @Autowire する方法はありますか?