我正在使用SoapUI来测试REST服务。我想添加如果存在v_manageCustomText值,那么我需要在dispositionNames中添加,否则按顺序添加dispositionNames。
def dispositionNames = ["ApproveFraud","ApproveNonFraud","System Error"]
log.info(dispositionNames.getClass().getSimpleName())
log.info(context.testCase.getPropertyValue("v_manageCustomText"))
if(context.testCase.getPropertyValue("v_manageCustomDisposition") !="")
{
value = context.testCase.getPropertyValue("v_manageCustomDisposition")
dispositionNames = dispositionNames.add(value)
log.info dispositionNames
log.info(dispositionNames.getClass().getSimpleName())
}
我得到了以下结果。它看起来我添加它后它变成了布尔类型。
Mon Oct 30 15:48:43 IST 2017:INFO:CustomDisposition1509102136431
Mon Oct 30 15:48:43 IST 2017:INFO:true
Mon Oct 30 15:48:43 IST 2017:INFO:Boolean
答案 0 :(得分:1)
Groovy是一种弱类型的语言",这意味着一方面你不需要定义一个变量的类型。另一方面,如果为其分配不同类型的值,则变量可以在中途运行。
http://groovy-lang.org/semantics.html
正如@adamcooney所提到的,你使用了这一行:
dispositionNames = dispositionNames.add(value)
执行将value
添加到dispositionNames
的操作。然后返回true
以指示add
操作是成功的。
然后将此true
分配回dispositionNames
var,将其值从List
更改为Boolean
。这就是你看到这种行为的原因。