首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Groovy和XMLUnit:比较webservice结果

Groovy和XMLUnit:比较webservice结果
EN

Stack Overflow用户
提问于 2013-10-07 18:55:08
回答 1查看 2.1K关注 0票数 0

使用Groovy和XMLUnit,我试图编写一个脚本来比较来自多个端点的web服务的xml输出。然而,试图让它从一个端点工作,然后在端点上迭代以比较输出,我继续得到以下错误:

代码语言:javascript
复制
Caught: groovy.lang.GroovyRuntimeException: 
Could not find matching constructor for: 
     org.custommonkey.xmlunit.Diff(groovy.util.Node, groovy.util.Node)
groovy.lang.GroovyRuntimeException: 
Could not find matching constructor for: 
     org.custommonkey.xmlunit.Diff(groovy.util.Node, groovy.util.Node)

我确信这与我对XmlParser/XmlSlurper和XMLUnit (a.k.a )的缺乏经验有关。(新手)。我非常欣赏任何指向正确方向的指示。下面是导致异常的示例代码:

代码语言:javascript
复制
@Grab(group='xmlunit', module='xmlunit', version='1.5')
import org.custommonkey.xmlunit.*

def url = "http://www.webservicex.net//geoipservice.asmx/GetGeoIP?IPAddress=173.201.44.188"
def xmlParserResults = new XmlParser().parse("$url")
//same thing happens if I use...
//def xmlSlurperResults = new XmlSlurper().parse("$url")

def xmlDiff = new Diff(xmlParserResults, xmlParserResults)
assert xmlDiff.identical()

提前谢谢你!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-07 19:17:02

url返回xml,Diff使用两个字符串进行比较(在您的示例中,您正在比较节点)。因此,比较最简单的方法是使用URL,而不是尝试使用XmlParserXmlSlurper进行解析。

代码语言:javascript
复制
def url = 
"http://www.webservicex.net//geoipservice.asmx/GetGeoIP?IPAddress=173.201.44.188"
def xmlString = new URL(url).text

def xmlDiff = new Diff(xmlString, xmlString)
assert xmlDiff.identical()

如果上面只是一个示例,而不是一个命中多个端点的工作示例,那么重点是将xml输出表示为字符串,然后进行比较。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19232419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档