2016-11-07 3 views
0

は、私はシンプルな春のブートアプリケーションの構造を持っていますメソッドは、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ブートフレームワークは実行時に私の実際の実装を自動的に解決します。私はテストの文脈でこれをどうやって行うかについてはわかりません。

+0

@Maciej、答えをありがとうが、これは私の現在の問題です。メインの私の "DbService"は、インターフェースとして定義されたリポジトリをautowiresします。実行時に、Spring/Spring Bootは私のプロジェクトの依存関係からそれらのインタフェースの実装を自動的に提供します。私はテストクラス "MyTestRoot"に "DbService"を注入しようとしています。ユニットテストを実行しているときに春にリポジトリの具体的な実装を得る方法を理解できません。それはエラーをスローします: 'code'名前 'dbServices'でBeanを作成中にエラーが発生しました:autowired依存関係の注入が' code'に失敗しました –

+0

あなたのテストクラスで質問を更新してください。私はあなたが何かを見逃しているかもしれないと思う。 –

答えて

1

春のブートではXMLファイルからBeanを自動的にインポートしません。 XMLファイルからBeanを作成するには、構成クラスの1つに@ImportResourceアノテーションを使用します。

ところで、なぜこれらのBeanをXMLファイルで作成しますか?ただ彼らのために@Configurationクラスを使用して、物事を簡単にしてください。さらに

、使用@SpringBootApplicationあなたは必要はありません。

  • @EnableComponentScan
    • @EnableAutoConfiguration
    • 彼らは冗長です。それが正確に何で注釈を引っ張るん見つけるために @SpringBootApplicationソースを参照してください

    0

    私が見つけ、次のポストは、私の仕事:http://tuhrig.de/inject-mocks-with-springs-contextconfiguration/

    私の問題は、私は私のテストでDbServiceを望んでいました。しかし、DbServiceは、実行時に春に解決された外部パッケージ依存関係の他のBeanに依存していました。私は、DbServiceが使用するすべてのautowired beanのMockを返すServiceMockProviderクラスをセットアップしました。 @ContextConfigurationでアノテーションされたベーステストクラスを作成し、クラス属性にDbServiceクラスとServiceMockProviderクラスを提供しました。すべての私のテストクラスはこの基本クラスを拡張し、私はテストのために行くのが良いです。

    これは誰かにとって役に立ちます。そして、ポストのためのThomas Uhrigに感謝します。

    関連する問題