30

テストで2つの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());
}
4

2 に答える 2

39

はい、XMLUnitは空白を無視できます。詳細については、 APIドキュメントを参照してください。次の設定で有効にできます。

XMLUnit.setIgnoreWhitespace(true)
于 2011-04-19T19:07:07.817 に答える
11

APIはXMLUnit2.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();
于 2017-06-08T17:48:30.787 に答える