加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在单元测试中比较scala.xml.Elem对象

发布时间:2020-12-16 09:14:37 所属栏目:安全 来源:网络整理
导读:我有两个 scala.xml.Elem对象(实际,预期).我正在使用JUnit 4,但也包括 XMLUnit 1.3. 有没有比较容易的方法来比较两个对象的等同性,忽略属性顺序和微不足道的空格在XML? 我试过XMLUnit.assertXMLEqual(),但它抱怨类型是scala.xml.Elem. 我知道我可以使用equa
我有两个 scala.xml.Elem对象(实际,预期).我正在使用JUnit 4,但也包括 XMLUnit 1.3.

有没有比较容易的方法来比较两个对象的等同性,忽略属性顺序和微不足道的空格在XML?

我试过XMLUnit.assertXMLEqual(),但它抱怨类型是scala.xml.Elem.

我知道我可以使用equals或==,但是我希望在不平等的情况下使断言打印两个值.如果我使用assertTrue(actual.equals(expected)),并且它们不相等,则唯一的输出将是“断言失败”.

解决方法

使用允许传递自定义消息的assertTrue版本

public static void assertTrue(java.lang.String message,boolean condition)

和(例如)diff来生成具有不相等的下降和节点的字符串

scala> val xml1 = <person><name>john</name><lastname>smith</lastname></person>
xml1: scala.xml.Elem = <person><name>john</name><lastname>smith</lastname></person>

scala> val xml2 = <person><name>jane</name><lastname>smith</lastname></person>
xml2: scala.xml.Elem = <person><name>jane</name><lastname>smith</lastname></person>

scala> assert(xml1 == xml2,xml1.child diff xml2.child mkString(","))
java.lang.AssertionError: assertion failed: <name>john</name>
        at scala.Predef$.assert(Predef.scala:91)
        at .<init>(<console>:8)
        at .<clinit>(<console>)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读