grails mock关闭wierdness

时间:2010-05-27 16:30:27

标签: grails groovy

右,

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

myControl.demand.theMethod {return null}

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

如果我这样做

myControl.demand.theMethod {->return null}

该值为null,如预期的那样。

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

1 个答案:

答案 0 :(得分:9)

我希望我说的是正确的

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

本质上,你的模拟试图使用'return'作为参数。你需要 - &gt;说“我没有参数通过”然后把你想要的东西放在箭头右侧