2016-06-22 29 views
1

使用JUnit進行spring-test讀取特定於測試方法的屬性文件的最佳方法? 以下豆示出了意圖搜索方法級,那麼類級,然後封裝級,然後根級別屬性文件:使用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> 

我使用/子類PropertySourcesPlaceholderConfigurerSpringMethodRule考慮但到目前爲止,我還沒有遇到一種可行的,優雅的解決方案。彈簧試驗提供了各種希望的一類級別的註解,但絆腳石是,我希望能夠找到一個特定的方法文件,如:

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

你所說的,你的意思是「希望能夠找到一個具體的方法文件」? Spring的'ApplicationContext'本身並不知道任何有關測試方法的知識,Spring TestContext Framework不支持每個測試方法加載一個測試'ApplicationContext'。那麼你打算在哪裏加載它們以及爲了什麼目的? –

+0

我的測試有一個'SpringContextRule'像http://www.alexcollins.com/tutorial-junit-rule。我的測試有另一個基於http://junit.org/junit4/javadoc/4.12/org/junit/rules/TestName.html的規則,它提供了對測試類和測試方法名稱的訪問。 –

+0

對於每種測試方法,都有一個按照約定以該方法命名的屬性文件,例如, 'foo.properties.xml','bar.properties.xml',其中'foo'和'bar'是測試方法名稱。 –

回答

0

如果你只是在尋找一個算法可以幫助你查找基於當前方法的類路徑資源,你可以從ServletTestExecutionListenerSpring TestContext Framework,特別是detectDefaultScript()方法中獲得靈感。

問候,

山姆(Spring的TestContext框架的作者)

+0

我會看看並回應反饋。謝謝! –