I’m writing unit tests for checking some XML builder.
Now I’m running into the problem of syntactical differences between the expected result and the actual result, despite their identical semantics.
Example:
Expected result:
<parent><child attr="test attribute">text here</child></parent>
Actual result:
<parent>
<child attr="test attribute">
text here
</child>
</parent>
I tried normalizing the xml using XmlUtil.serialize(), however this seems to keep the whitespaces, leaving syntactical differences.
How can I get the normalized/canonical form of xml strings in order to make my tests more robust?
I’m writing a Grails application, so I’m fine with any solution in Groovy or Java.
You can use the Groovy XMLUnit utility like this:
To compare XML files while ignoring the syntactical differences.