Spring対応のJUnitテストがあります。デフォルトのapplicationContextをロードします。ここで、テスト用に1つのBean、つまりentityManagerをtestEntityManagerに置き換えたいと思います。
私は3つの可能な方法を想像することができますが、それはあまりエレガントではないようです。
- コンテキスト(defaultContext、emContext)を分割し、テストコンテキストファイル(テストリソースのemContext)によってコンテキストファイルをオーバーライドします
- ファクトリを使用し、testEntityManagerを選択します(本番コードで)
- Springを使用せずに、オブジェクト階層を自分で構築します(最も実行不可能なソリューション)
それを正しく行うためのベストプラクティスはありますか?
この質問の背景は次のとおりです。境界に近いオブジェクト(DB、Webサービスなど)のみを置き換えたいのですが。
敬具
編集:私は今、この方法でそれを解決しました:クラスパスとテストクラスパスにプロパティファイルを追加し、プロパティプレースホルダーと組み合わせてSpringエイリアスを使用しました。このようにして、テストでBeanを別の実装に接続することができました。