grails mock关闭wierdness

hvg*_*des 7 grails groovy

对,

所以当我使用测试插件的mockFor方法设置我的模拟时,我期望一个返回null的方法.如果我做

myControl.demand.theMethod {return null}
Run Code Online (Sandbox Code Playgroud)

在调试器中,我设置'theMethod'调用结果的值是调试器中的一些闭包.

如果我做

myControl.demand.theMethod {->return null}
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,该值为null.

我不明白其中的差别......

小智 9

我希望我说得对

在groovy文档 http://groovy.codehaus.org/Closures中, 它声明"没有 - >的闭包,即{},是一个闭包,其中一个参数隐式命名为'它'." ...."在某些情况下,你需要构造一个零参数的Closure,例如使用GString进行模板化,定义EMC属性等.你必须明确地将你的Closure定义为{ - >}而不仅仅是{}"

实质上,你的模拟试图使用'return'作为参数.你需要 - >说"我没有参数通过",然后把你想要的东西放在箭头的右边