首页 > 解决方案 > 使用 Groovy 从文档中断言特定的 xml 标记

问题描述

我想创建一个 groovy 脚本,它将断言文档或 xml 文件是否包含一个也包含特定值的标记。我想我可以像这样定义文件:

String fileContents = new File('/path/to/file').getText('UTF-8')

但我一直在努力如何定义断言。假设我要检查的这个 xml 文件应该包含一个名为<ApplicationID>value的标签12345。如何验证<ApplicationID>12345</ApplicationID>包含在特定文件中?

标签: xmlgroovyassert

解决方案


您可以将文件视为原始文本,如下所示:

assert new File('somefile').text.contains('<ApplicationID>12345</ApplicationID>')

或者,解析 XML 并在 XML 中指定要检查的数据的位置。

Given:
    new File("somefile.xml").text = 
     '<someXml><someTag><ApplicationID>12345</ApplicationID></someTag></someXml>'

Then:
    assert new XmlSlurper()
     .parseText(new File("somefile.xml").text)
     ."someTag"."ApplicationID".text() == "12345"

推荐阅读