Ответ 1
Да, XMLUnit может игнорировать пробелы. Подробнее см. документацию по API. Вы можете включить его, установив:
XMLUnit.setIgnoreWhitespace(true)
Я хочу сравнить две строки 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());
}
Да, XMLUnit может игнорировать пробелы. Подробнее см. документацию по API. Вы можете включить его, установив:
XMLUnit.setIgnoreWhitespace(true)
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();