2016-06-22 12 views
1

のテストメソッドに固有のプロパティファイルを読み込むためにJUnitでspring-testを使用する最良の方法は何ですか? 次Beanが、ルート・レベルのプロパティファイル、メソッドレベル、クラスレベル、パッケージレベルを検索する意図を示していますJUnit + spring-testを使用したメソッドレベルのプロパティの読み込み


<bean name="properties" class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer" > 
    <property name="locations"> 
     <list> 
      <value>classpath:properties.xml</value> 
      <value>classpath:*/properties.xml</value> 
      <value>classpath:*/*/properties.xml</value> 
      <value>classpath:*/*/*.properties.xml</value> 
     </list> 
    </property> 
</bean> 

私は/サブクラスPropertySourcesPlaceholderConfigurerまたはSpringMethodRuleを使用して考えられてきました、しかし、これまでのところ、実用的でもエレガントな解決策も私には起こりませんでした。春試験は、有望なクラスレベルの注釈をご用意しておりますが、つまずきは、例えば、私はメソッド固有のファイルを見つけることができるようにしたいということです。

classpath:myPackage/myClass/myMethod.properties.xml 
+0

あなたは「メソッド固有のファイルを見つけることができるようにしたい」あなたはどういう意味ですか? Spring 'ApplicationContext'自体はテストメソッドについて何も知らないし、Spring TestContext Frameworkはテストメソッドごとにテスト' ApplicationContext'をロードすることをサポートしていません。だから、あなたはそれらをどのような目的のためにロードする予定ですか? –

+0

私のテストはhttp://www.alexcollins.com/tutorial-junit-ruleのような 'SpringContextRule'を持っています。私のテストには、テストクラスとテストメソッドの名前へのアクセスを提供するhttp://junit.org/junit4/javadoc/4.12/org/junit/rules/TestName.htmlに基づく別のルールがあります。 –

+0

各テストメソッドには、メソッドの後に命名されるプロパティファイルがあります。 'foo.properties.xml'、 'bar.properties.xml'、 'foo'と 'bar'はテストメソッド名です。 –

答えて

0

あなただけアルゴリズムを探しているならは、現在のメソッドに基づいてクラスパスリソースを検索するのに役立ちます。のSpring TestContext FrameworkServletTestExecutionListener、具体的にはdetectDefaultScript()メソッドからインスピレーションを得ることができます。

よろしく、

サム(春TestContextフレームワークの作者)

+0

私は一見を持って、フィードバックで応答します。ありがとうございました! –

関連する問題