[解決済み】ユニットテスト中のSpring @Valueの入力について
質問
私は、フォームを検証するために私のプログラムで使用されている単純なビーン用のユニットテストを書こうとしています。このビーンには、次のアノテーションがあります。
@Component
を使用して初期化されるクラス変数を持っています。
@Value("${this.property.value}") private String thisProperty;
このクラス内の検証メソッドのユニットテストを書きたいのですが、できればプロパティファイルを利用せずに書きたいのです。その理由は、プロパティファイルから取得する値が変更されても、それがテストケースに影響を与えないようにしたいからです。私のテストケースは、値を検証するコードをテストしているのであって、値そのものをテストしているのではありません。
テストクラス内でJavaコードを使用してJavaクラスを初期化し、そのクラス内のSpring @Valueプロパティに値を入力して、それをテストに使用する方法はありますか?
私はこれを見つけた ハウツー が近いと思われますが、やはりプロパティファイルが使われています。私はむしろ、すべてJavaコードであることを望みます。
解決方法は?
可能であれば、Spring Contextを使わないでテストを書いてみてください。もし、Springを使わないテストでこのクラスを作成すれば、そのフィールドを完全に制御することができます。
を設定するために
@value
フィールドを使用すると、スプリングス
ReflectionTestUtils
- メソッドを備えています。
setField
を使用して、プライベートフィールドを設定します。
参照 JavaDoc: ReflectionTestUtils.setField(java.lang.Object, java.lang.String, java.lang.Object)
関連
-
[解決済み] Eclipse デフォルトのフォント名
-
[解決済み] java.lang.ClassCastException: java.util.Arrays$ArrayList は java.util.ArrayList にキャストできません。
-
[解決済み] java.util.MissingFormatArgumentException: 形式指定子 '%s' がありません。
-
[解決済み] Apache Camelのログに簡単なテキストを記録する
-
[解決済み] プライベートメソッド、フィールド、インナークラスを持つクラスをテストするにはどうすればよいですか?
-
[解決済み] Javaで配列に特定の値が含まれているかどうかを判断するにはどうすればよいですか?
-
[解決済み] Javaで文字列値からenum値を取得する方法
-
[解決済み】Javaの「ダブルブレース初期化」の効率化?
-
[解決済み】プロパティファイルからリストを読み込んで、スプリングアノテーション@Valueでロードする。
-
[解決済み】Junit TestでSpring-Bootのデフォルトのapplication.propertiesの設定を上書きする。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Eclipse デフォルトのフォント名
-
[解決済み] Java - JTextFieldが空かどうかを確認する
-
[解決済み] このフォーマット(Tue Jul 13 00:00:00 CEST 2010)の日付をJavaの日付に変換する方法(文字列はalfrescoのプロパティに由来しています)
-
[解決済み] java.lang.IncompatibleClassChangeError: Mongo クラスを実装しています。
-
[解決済み] Oracle DB : java.sql.SQLException: 閉じた接続
-
[解決済み] Java の条件付きコンパイル:コードチャンクをコンパイルしないようにするには?
-
[解決済み] javascriptでExpression言語を使うには?
-
[解決済み] java.lang.ClassNotFoundException: クラス com.ibm.db2.jcc.DB2Driver が Worklight プラットフォームまたはプロジェクトに見つかりませんでした。
-
[解決済み] Java の文字列インデックスが範囲外です。0 [閉店]
-
[解決済み] スリーピング中のスレッドが割り込まれ、データベースへの接続が失われる