2013-10-14 80 views
0

我想測試彈簧如何測試未在類路徑中找到文件?爪哇(春季@Configuration)

@Configuration class 

可以處理classpath中丟失的文件。例如。當使用PropertySourcesPlaceholderConfigurer。但這只是一個具體的例子,問題是如何測試與類路徑交互的類(例如,讀取位於maven項目中的src/main/resources中的文件)。

因此,本質上我想創建一個彈簧上下文,我在測試設置代碼中控制類路徑。

測試需要是JUnit測試。下面

回答

1

希望可以幫助你

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(locations = {"classpath*:/testApplicationContext.xml"}) 
public class YourTestClass{ 

,你必須爲您的測試Spring上下文,您可以包括生產一進去。您可以用絕對位置替換classpath*:

問候,Rajib。

+0

我想以編程方式更改類路徑。類似於(僞代碼): classpath = classpath.remove(「foo.properties」) – Erik

0

這工作,如果它是一個Maven項目:

  • 舉動,你想從一個單獨的聚甲醛罐子模塊測試缺乏的,包括它需要的地方類路徑文件。

  • 將classpath測試移到一個名爲missing-classpath-file-test的單獨的pom jar模塊中,但不包含帶有想要模擬爲缺失的文件的模塊。我只會在類路徑中缺少該測試。

運行missing-classpath-file-test時,文件將不在類路徑上,並且需要重現的錯誤可以實現。

關於以下注釋的問題,使用應用程序服務器附帶的類加載器和junit測試中使用的類加載器,不可能通過編程方式更改類路徑。