【发布时间】:2018-06-24 00:25:45
【问题描述】:
我有以下方法可以检查两个 XML 文档是否匹配:
@Test
public void currentXMLShouldMatchXMLSpecification() throws Exception {
String xml1 = convertXMLToString("/module/docs/document1.xml");
String xml2 = convertXMLToString("/module/docs/document2.xml");
XMLUnit.setIgnoreWhitespace(true); // ignore whitespace differences
assertXMLEquals(xml1, xml2);
}
XML转字符串方法:
public static String convertXMLToString(String filePath) throws IOException {
//filename is filepath string
BufferedReader br = new BufferedReader(new FileReader(new File(filePath)));
String line;
StringBuilder sb = new StringBuilder();
while((line=br.readLine())!= null){
sb.append(line.trim());
}
return line;
}
断言 XML 等于方法:
public static void assertXMLEquals(String expectedXML, String actualXML) throws Exception {
XMLUnit.setIgnoreWhitespace(true);
XMLUnit.setIgnoreAttributeOrder(true);
DetailedDiff diff = new DetailedDiff(XMLUnit.compareXML(expectedXML, actualXML));
List<?> allDifferences = diff.getAllDifferences();
Assert.assertEquals("Differences found: " + diff.toString(), 0, allDifferences.size());
}
错误:
java.io.FileNotFoundException:(The system cannot find the path specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:146)
at java.io.FileReader.<init>(FileReader.java:72)
我是否需要将我的 XML 文档移动到 Resources 文件夹下?或者这是我正在犯的代码错误?
请注意,包含此测试的测试类与我要阅读的文档不在同一个模块中。
【问题讨论】:
-
请放堆栈跟踪
标签: java xml string file bufferedreader