Есть ли у XMLUnit утверждение игнорировать пробелы - PullRequest
29 голосов
/ 19 апреля 2011

Я хочу сравнить две строки 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());
}

Ответы [ 2 ]

36 голосов
/ 19 апреля 2011

Да, XMLUnit может игнорировать пробелы. См. Документация API для получения подробной информации. Вы можете включить его, установив:

XMLUnit.setIgnoreWhitespace(true)
6 голосов
/ 08 июня 2017

API был изменен с XMLUnit 2.x .

Теперь, для модульных тестов, вы можете игнорировать пробелы с помощью сопоставителя подколенного сухожилия, например:

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();
...