我想在测试中比较两个xml字符串,但由于空格,测试会一直失败。
@Test
public void testForEquality() throws Exception {
String myControlXML = "<msg><uuid>0x00435A8C</uuid></msg>";
String myTestXML = "<msg><uuid>0x00435A8C</uuid> </msg>";
assertXMLEqual(myControlXML, myTestXML);
Diff diff = new Diff(myControlXML, myTestXML);
assertTrue(diff.similar());
}
答案 0 :(得分:36)
是的,XMLUnit可以忽略空格。有关详细信息,请参阅API documentation。您可以通过设置:
启用它XMLUnit.setIgnoreWhitespace(true)
答案 1 :(得分:6)
API已随XMLUnit 2.x更改。
现在,对于单元测试,您可以使用像Hamcrest匹配器那样忽略空格:
import static org.hamcrest.MatcherAssert.assertThat;
import static org.xmlunit.matchers.CompareMatcher.isIdenticalTo;
...
assertThat(actual, isIdenticalTo(expected).ignoreWhitespace());
或者,直接使用构建器API:
import org.xmlunit.builder.DiffBuilder;
...
boolean areDifferent = DiffBuilder.compare(left).withTest(right)
.ignoreWhitespace().build().hasDifferences();