Right,
so when I set up my mock using the testing plugin's mockFor method, I expect a method that returns null. If I do
myControl.demand.theMethod {return null}
in the debugger, the value that I set the 'theMethod' call result to is some closure in the debugger.
If I do
myControl.demand.theMethod {->return null}
the value is null, as expected.
I dont understand the difference....
I hope I word this right
In the groovy documentation http://groovy.codehaus.org/Closures it states that "A Closure without -> , i.e. {} , is a Closure with one argument that is implicitly named as 'it'." .... "In some cases, you need to construct a Closure with zero arguments, e.g. using GString for templating, defining EMC Property etc. You have to explicity define your Closure as { -> } instead of just { }"
In essence, your mock was trying to use 'return' as an argument. You need the -> to say "I have no parameters to pass" and then put what you want it to return on the right side of the arrow
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With