2011-07-08 73 views
0

我正在測試我的一個方法。該方法將一個String對象作爲輸入。該字符串對象將包含xml數據,然後由該方法進行處理。由於我的xml輸入很大,是否可以在spring配置文件中設置這個xml字符串,並以某種方式在Jnuit測試用例中訪問它。我在我的JUnit測試中訪問xml字符串的其他簡單方法是什麼?爲junit測試設置spring配置的xml數據

回答

2

最好的解決辦法是把單獨的文件中XML的測試類路徑中,然後根據需要將其加載爲類路徑的資源。 Spring提供了一個所謂的使用ClassPathResource類,你可以這樣做:

ClassPathResource res = new ClassPathResource("/testing/test1/doc2.xml"); 
InputStream is = res.getInputStream(); 

這樣一來,你的測試數據不會弄亂你的Spring配置文件。我建議定義一個java.util.List,其中包含測試中使用的文件的路徑,然後對其進行迭代。您可以從Spring配置這樣的自動拉:

@Resource(name="test1ValidDocuments") 
private List test1ValidDocs; 

Spring就會查找列表豆在測試範圍內命名test1ValidDocuments。

如果你還沒有,我建議使用Maven進行構建和測試。這使得這類事情的管理變得簡單。例如,Maven將爲您管理類路徑。您在PROJECT_NAME/src/test/resources中放置的任何文件和文件夾僅在測試階段可見(mvn test)。

0

如果將其包裝在CDATA xml構造中,您應該能夠在Spring配置中使用任何xml屬性值。

Wikipedia entry

+0

感謝您的意見。但是我會用Mike解決方案,只是因爲我的項目使用maven,並且將xml數據放在單獨的文件中很容易。 – prashant

0

我完全同意@Mike解決方案我只是想說,沒有必要使用彈簧進行測試unless您已經在測試中注入了bean。你的方法應該沒有彈簧環境awareness,因此它可以重用,測試執行速度更快。