2010-05-27 48 views
7

右键,Grails的mockFor关闭wierdness

所以当我建立了我的模拟使用测试插件的mockFor方法,我想到的方法是 返回null。如果我在调试器中执行

myControl.demand.theMethod {return null} 

,那么我将'theMethod'调用结果设置为在调试器中的某个闭包的值。

如果我做

myControl.demand.theMethod {->return null} 

值为空,符合市场预期。

我不明白的区别....

回答

9

我希望我的字这一权利

在常规文档http://groovy.codehaus.org/Closures它指出“没有结束 - >,即{},是一个封闭一个论点被隐含地命名为“it”。“ ....“在某些情况下,您需要构建一个零参数的Closure,例如使用GString进行模板化,定义EMC属性等。您必须明确定义您的Closure为{ - >},而不仅仅是{}

实质上,你的模拟试图使用'返回'作为参数。你需要 - >说“我没有参数可以通过”,然后把你想要它返回的箭头的右侧

+1

Ahhhh facepalm .... {return}意味着一个参数,方法我嘲笑需要0个参数,所以{ - >}是正确的.... thanx – hvgotcodes 2010-05-27 20:04:05