我正在为Web应用程序编写硒助剂,对于其中的一项功能,我正在取消grails服务的响应。有什么方法可以保留以后的方法,以便我可以“重新打开”服务?这个想法是我的测试帮助代码可以与生产代码完全分开,并且没有测试帮助泄漏到真实的服务层中。

对于“关闭”服务,此方法工作正常,但是重新启用它是一个问题。

我正在这样做:

myService.metaClass.method1 = {true}
myService.metaClass.method2 = {false}

我尝试只存储myService.metaClass.method1,但是稍后尝试设置它只会留下方法存根。

如何存储method1method2以便以后使用?

最佳答案

您可以使用getMetaMethod获得参考,例如

def oldMethod1 = MyService.metaClass.getMetaMethod('method1')

MyService.metaClass.method1 = { -> true }

def myService = ...

def realValue = oldMethod.invoke(myService)

关于grails - 如何保存方法以供以后使用,将其存入一段时间?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7365741/

10-10 16:20