は、私はシンプルな春のブートアプリケーションの構造を持っていますメソッドは、DBServiceの新しいインスタンスを返します。このメソッドには@Beanアノテーションが付いています。春ブートアプリケーションのテスト戦略のアドバイス
@Bean
public DBService dbService() {
return new DBService();
}
DBServiceクラスには、Autowiredという名前のリポジトリがあります。これらのリポジトリは別のプロジェクト依存関係にあり、RDBMS /データストアへの接続を提供します。
私は私のテストクラスでdbServiceをautowireすると、私はエラー「エラー名 『dbServices』でBeanを作成し得る
<bean id="dbService" class="com.path.to.class.in.dependency"/>
のApplicationContext-のtest.xmlにBeanを定義した:autowired依存性の注入に失敗しました; "
私はここで間違っていますか?私は春のブート1.3.5を使用しており、1.4以降で利用できるので、@SpringBootTest注釈を使用することはできません。どんな助けでも大歓迎です。
EDIT: 順にDbServiceクラスは、リポジトリクラス(userRepositoty、customerRepositoryなど)を意味するので、私は、テスト・コンテキスト・ファイルにおいてもこれらのリポジトリのための豆を定義しようとしました。しかし、私がDbServiceクラス(Mainにある)に注入しているリポジトリはインタフェースであり、Springブートフレームワークは実行時に私の実際の実装を自動的に解決します。私はテストの文脈でこれをどうやって行うかについてはわかりません。
@Maciej、答えをありがとうが、これは私の現在の問題です。メインの私の "DbService"は、インターフェースとして定義されたリポジトリをautowiresします。実行時に、Spring/Spring Bootは私のプロジェクトの依存関係からそれらのインタフェースの実装を自動的に提供します。私はテストクラス "MyTestRoot"に "DbService"を注入しようとしています。ユニットテストを実行しているときに春にリポジトリの具体的な実装を得る方法を理解できません。それはエラーをスローします: 'code'名前 'dbServices'でBeanを作成中にエラーが発生しました:autowired依存関係の注入が' code'に失敗しました –
あなたのテストクラスで質問を更新してください。私はあなたが何かを見逃しているかもしれないと思う。 –