0

我在以下代码中有一个问题。

String xml1="<Akash><status>COMPLETE</status>"
                    +"<startedTime>23</startedTime></Akash>"; 
String xml2="<Akash><status>COMPLETE</status><startedTime></startedTime></Akash>";

Diff diff = new Diff(xml1,xml2);
diff.overrideElementQualifier(new ElementNameAndTextQualifier()); 
assertTrue("XML similar " + diff.toString(), diff.similar());

当我不在上面的 java 代码中写下以下行时。

 XMLUnit.setIgnoreWhitespace(true) 

断言在“开始时间”附近给出了一个异常,该节点的值不存在,这是我想要的,因为值 23 不存在。但是当我在实例化 Diff 类之前将此行 (setIgnoreWhitespace) 添加到代码中时,尽管具有相同的 xml,但此代码通过了断言测试。

我真的不明白这里发生了什么。请帮我。

注意:我需要 XMLUnit.setIgnoreWhitespace(true) 来等同于在它们的某些节点之间有空间的两个 xml,否则代码会给出一些其他错误。

4

1 回答 1

1
public static void main(String[] args) throws Exception {
    String xml1="<Akash><status>COMPLETE</status>"
        +"<startedTime>23</startedTime></Akash>"; 
    String xml2="<Akash><status>COMPLETE</status><startedTime></startedTime></Akash>";

    XMLUnit.setIgnoreWhitespace(true);
    Diff diff = new Diff(xml1,xml2);
    diff.overrideElementQualifier(new ElementNameAndTextQualifier()); 
    assertTrue("XML similar " + diff.toString(), diff.similar());
}

为我抛出异常(XMLUnit 1.6)。

Exception in thread "main" java.lang.AssertionError: XML similar org.custommonkey.xmlunit.Diff
[different] Expected presence of child nodes to be 'true' but was 'false' - comparing <startedTime...> at /Akash[1]/startedTime[1] to <startedTime...> at /Akash[1]/startedTime[1]
于 2015-09-03T19:41:19.380 回答