今天要寫一個(gè)單元測(cè)試,這個(gè)單元測(cè)試類要去讀和它同目錄的一個(gè)XML文件。它的位置如下:
ConfigFactoryImplTest要去讀取boss-connector-service.xml。

那么如果得到這個(gè)文件呢?先看下面的一個(gè)對(duì)路徑的測(cè)試代碼
import?java.io.File;
public?class?PathTest?{
??public?static?void?main(String[]?args)?throws?Exception?{
????System.out.println(
????Thread.currentThread().getContextClassLoader().getResource(""));
????System.out.println(PathTest.class.getClassLoader().getResource(""));
????System.out.println(ClassLoader.getSystemResource(""));
????System.out.println(PathTest.class.getResource(""));
????System.out.println(PathTest.class.getResource("/"));
????System.out.println(new?File("").getAbsolutePath());
????System.out.println(System.getProperty("user.dir"));
??}
}
打印各種路徑結(jié)果如下:
file:/E:/wxxr_projects2/wxxr-applications/wxxr-boss-connector/target/test-classes/
file:/E:/wxxr_projects2/wxxr-applications/wxxr-boss-connector/target/test-classes/
file:/E:/wxxr_projects2/wxxr-applications/wxxr-boss-connector/target/test-classes/
file:/E:/wxxr_projects2/wxxr-applications/wxxr-boss-connector/target/test-classes/com/wxxr/boss/config/
file:/E:/wxxr_projects2/wxxr-applications/wxxr-boss-connector/target/test-classes/
E:\wxxr_projects2\wxxr-applications\wxxr-boss-connector
E:\wxxr_projects2\wxxr-applications\wxxr-boss-connector
發(fā)現(xiàn)PathTest.
class.getResource("")得到了絕對(duì)路徑,嗯,就它了。于是將ConfigFactoryImplTest類里的代碼書寫如下(這里是用DOM來讀XML):
????private?static?Element?getRootElement()?throws?Exception?{
????????DocumentBuilderFactory?dbf?=?DocumentBuilderFactory.newInstance();
????????DocumentBuilder?db?=?dbf.newDocumentBuilder();
????????Document?doc?=?db.parse(ConfigFactoryImplTest.class.getResource("")?+?"boss-connector-service.xml");
????????return?doc.getDocumentElement();
????}
后記:
得到資源文件的路徑,在不同的環(huán)境(如:Eclipse RCP、Tomcat、Weblogic、簡(jiǎn)單的Java Application),方法都是略有不同的。具體的環(huán)境要具體分析。