我正在使用Soapui,我想添加一个groovy代码来断言json响应中的一些元素。
如何在以下代码中使用带有groovy的if else语句:
def jsonPayload = new File("C:/temp7/file.js").text
import groovy.json.JsonSlurper
def slurper = new JsonSlurper()
def response = slurper.parseText(jsonPayload)
if (assert response.comp.type[0] == "header")
println 'header is present'
else 'header is not present'
当我尝试这个时我有错误org.codehaus.groovy.control.MultipleCompilationErrorsException
谢谢
答案 0 :(得分:5)
Groovy的编译器希望if测试中的代码能够评估某些东西。如果我在Groovy控制台中运行此代码
assert true
我没有得到结果,如果我运行
assert true
"asdf"
我得到了
Result: asdf
所以assert是一个声明,它不会评估任何东西。尝试使用assert作为if语句的条件,比如
if (assert true) {
println('hello')
}
结果
1 compilation error:
unexpected token: assert at line: 1, column: 5
if的条件需要是表达式。
断言是指如果您声称的内容不正确,您希望它大声失败的情况。除非您希望在不满足条件时抛出异常,否则不要使用assert。
这里看起来你可以不用断言:
if (response.comp.type[0] == 'header')
println('header is present')
else
println('header is not present')