我的目录结构如下
Root
|--A
|--src
|--target
|--output.xml
|--B
|--src
|--test
|--java
|--MyTest.java
我的Junit测试方法如下所示
@Test
public void testXmlGeneration() {
File file = new File("output.xml");
assertTrue(file.exists());
}
我想检查是否在目录A中生成output.xml。
以上测试失败java.lang.AssertionError
at org.junit.Assert.fail(Assert.java:86)
at org.junit.Assert.assertTrue(Assert.java:41)
我也尝试过以下方法,但是它失败了NullPointerException。
File file = new File(this.getClass().getClassLoader().getResourceAsStream("A/output.xml").toString());
assertTrue(file.exists());
NullPointerException堆栈跟踪如下所示
java.lang.NullPointerException
at com.B.StatisticsTest.testXmlGeneration(StatisticsTest.java:37)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
答案 0 :(得分:0)
File file = new File(this.getClass().getClassLoader().getResourceAsStream("A/output.xml").toString());
它的.toString()方法。它不会被视为文件,这就是为什么你可以尝试下面的错误
@Test
public void test() {
File f = new File(this.getClass().getClassLoader().getResource("A/output.xml").getFile());
assertTrue(f.exists());
}