如何将上下文从脚本传递到另一个groovy类
下面是我的Groovy脚本,它实例化了我的类。它是一个更大的Groovy脚本的一部分,由许多类组成,这些类作为测试用例位于SoapUI的测试套件中:如何将上下文从脚本传递到另一个groovy类,groovy,soapui,Groovy,Soapui,下面是我的Groovy脚本,它实例化了我的类。它是一个更大的Groovy脚本的一部分,由许多类组成,这些类作为测试用例位于SoapUI的测试套件中: public class Run extends Script { public static void main (String[] args){ Run mainRun = new Run() } public run(){ def groovyUtils = new com.eviware.soapui.support.Gro
public class Run extends Script {
public static void main (String[] args){
Run mainRun = new Run()
}
public run(){
def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context ); // Would not error
Model myModel = new Model()
View myView = new View()
Controller myController = new Controller()
myModel.addObserver (myView)
myController.addModel(myModel)
myController.addView(myView)
myController.initModel("Init Message")
myView.addController(myController)
}}
在上面的“Run”类中(如果我愿意的话),我能够引用“context”——以便定义GroovyUtils。如何将“上下文”传递给另一个类,即模型,以便在模型中使用GroovyUtils?即:
class Model extends java.util.Observable {
public String doSomething(){
def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context );// Error occurs here
return "Stuff that needs groovyUtils"
}}
上述代码在尝试引用上下文时会导致错误,尽管它与“Run”类位于同一Groovy测试步骤中。任何帮助都将不胜感激。我不确定我是否正确理解了您模型的所有部分,但是正如@tim_yates在他的评论中所建议的,为什么您不简单地将
groovyUtils
传递给您的模型
类。您可以通过添加groovyUtils
变量来修改模型
类:
class Model extends java.util.Observable {
com.eviware.soapui.support.GroovyUtils groovyUtils
public String doSomething(){
println this.groovyUtils// here you've groovy utils
return "Stuff that needs groovyUtils"
}
}
然后在run()
方法中,使用groovy默认映射构造函数将groovyUtils
传递给Model
类:
public class Run extends Script {
public static void main (String[] args){
Run mainRun = new Run()
}
public run(){
def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context ); // Would not error
Model myModel = new Model('groovyUtils':groovyUtils) // pass the groovyUtils to your Model
assert "Stuff that needs groovyUtils" == myModel.doSomething() // only to check the groovyUtils is passed to your model class
assert myModel.groovyUtils == groovyUtils
...
}}
希望有帮助,为什么不直接将GroovyTils传递给该方法呢?为什么你必须在两个地方得到它?我不知道如何将它传递给方法。因为“Run”类从不直接与“Model”类中的方法通信。非常感谢-这正是我所需要的!