This xml-truth module provides a Google Truth extension to compare XML data. It can be used as an alternative to XMLUnit. The basic usage is as follows:
assertAbout(xml()).that(actual).hasSameContentAs(expected);
This relies on the following static imports being present:
import static com.google.common.truth.Truth.assertAbout; import static org.apache.axiom.truth.xml.XMLTruth.xml;
actual and expected are objects that represent XML data. The following types are currently supported:
InputStream, Reader, String and byte[] with XML data to be parsed
javax.xml.transform.stream.StreamSource and org.xml.sax.InputSource
DOM Document or Element nodes
java.net.URL
javax.xml.stream.XMLStreamReader
By default, comparison is strict. E.g. the following assertion would fail:
assertAbout(xml()).that("<p:a xmlns:p='urn:ns'/>").hasSameContentAs("<a xmlns='urn:ns'/>");
To control how the comparison is performed, use the relevant methods on the XMLSubject object returned by that():
assertAbout(xml()) .that("<p:a xmlns:p='urn:ns'/>") .ignoringNamespacePrefixes() .ignoringNamespaceDeclarations() .hasSameContentAs("<a xmlns='urn:ns'/>");