如果路径不存在,为什么这个检查路径的SoapUI断言会失败? [英] Why does this SoapUI assertion, which is checking for a path, fail if the path does not exist?
本文介绍了如果路径不存在,为什么这个检查路径的SoapUI断言会失败?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在SoapUI中有一个JSONPath存在断言:
如果路径$personResults[0].person.identifiers[0].value
不存在,则断言应通过。
但断言始终失败,并返回错误:
断言路径[$personResults[0].person.identifiers[0].value]失败:路径未发现异常:在当前上下文中找不到路径‘Person’...(此处为JSON请求)
这无疑是因为$personResults[0].person
不存在,因此$personResults[0].person.identifiers
也不存在。
.但这正是我要测试的!!如果该路径不存在,则断言需要传递,但断言本身引发错误,因为该路径不存在。
我确信这是由于路径不存在,因为如果我将断言指向确实存在的路径,断言就会修复。
总结:
$personResults[0]
返回TRUE$personResults[0].person
返回FALSE$personResults[0].person.identifiers
引发PathNotFoundException
但我需要lase返回False。
推荐答案
SoapUI使用的JSONPath引擎并不像您希望的那样成熟。
解决方法是使用XPath。在内部,SoapUI将所有内容转换为XML,因此您只需使用XPath匹配步骤:
exists(//*:personResults//*:person//*:identifiers)
预期:
false
编辑:您可能需要添加上面编辑的命名空间。
这篇关于如果路径不存在,为什么这个检查路径的SoapUI断言会失败?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文