如果用groovy如何使用?

时间:2014-12-09 19:38:37

标签: groovy

我正在使用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

谢谢

1 个答案:

答案 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')