我正在为Web应用程序编写硒助剂,对于其中的一项功能,我正在取消grails服务的响应。有什么方法可以保留以后的方法,以便我可以“重新打开”服务?这个想法是我的测试帮助代码可以与生产代码完全分开,并且没有测试帮助泄漏到真实的服务层中。
对于“关闭”服务,此方法工作正常,但是重新启用它是一个问题。
我正在这样做:
myService.metaClass.method1 = {true}
myService.metaClass.method2 = {false}
我尝试只存储
myService.metaClass.method1
,但是稍后尝试设置它只会留下方法存根。如何存储
method1
和method2
以便以后使用? 最佳答案
您可以使用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/