我想创建一个groovy的bean,它接受请求的参数,并在参数总和为正时返回适当的响应。我想知道如何在groovy bean的方法中加载我的请求
import com.eviware.soapui.support.XmlHolder
import com.eviware.soapui.support.GroovyUtils
import com.eviware.soapui.model.mock.*
import org.apache.commons.lang.StringUtils
import groovy.util.*
import groovy.lang.*
public class Test
{
public int somme ()
{
def holder = new XmlHolder(mockRequest.getRequestContent())
def a = holder["//firstInt:a"]
def b = holder["//secondInt:b"]
return(a + b)
}
public String getResponse ()
{
Test t = new Test ()
if (t.somme() > 0)
{
return "response1"
}
else
{
return "response2"
}
}
}
当我运行此代码时,我有以下错误:
com.eviware.soapui.impl.wsdl.mock.DispatchException:失败 使用脚本发送; groovy.lang.MissingPropertyException:没有这样的 property:mockRequest for class:Test
答案 0 :(得分:0)
你的课应该是这样的。
请注意更改:
mockRequest
成员变量,将其作为参数传递给类的构造函数。getResponse()
方法不需要创建对象,而是可以根据需要在其他脚本中执行。就像Mock响应的脚本mockRequest
可用。import com.eviware.soapui.model.mock.MockRequest
import com.eviware.soapui.support.XmlHolder
public class Test {
MockRequest mockRequest
public Test(MockRequest mockRequest) {
this.mockRequest=mockRequest
}
public int somme () {
def holder=new XmlHolder(mockRequest.getRequestContent())
def a=holder["//firstInt:a"]
def b=holder["//secondInt:b"]
(a + b)
}
public String getResponse () {
somme() ? "response1" : "response2"
}
}