grails mockFor замыкание wierdness

Правильно,

поэтому, когда я настраиваю свой макет с помощью метода mockFor тестового плагина, я ожидаю, что метод возвращает null. Если я сделаю

myControl.demand.theMethod {return null}

в отладчике значение, которое я установил для результата вызова 'theMethod', является некоторым замыканием в отладчике.

If I do

myControl.demand.theMethod {->return null}

значение равно null, как и ожидалось.

разницы не понимаю....


person hvgotcodes    schedule 27.05.2010    source источник


Ответы (1)


надеюсь правильно выразился

В документации по groovy http://groovy.codehaus.org/Closures говорится, что "Замыкание без - > , т. е. {} , является замыканием с одним аргументом, который неявно назван «it». .... «В некоторых случаях вам нужно создать замыкание с нулевыми аргументами, например, используя GString для создания шаблонов, определения свойства EMC и т. д. Вы должны явно определить свое замыкание как { -> }, а не просто {}»

По сути, ваш макет пытался использовать «возврат» в качестве аргумента. Вам нужен ->, чтобы сказать «У меня нет параметров для передачи», а затем поместите то, что вы хотите, чтобы он возвращал, с правой стороны стрелки.

person Jen    schedule 27.05.2010
comment
Ааааааааааааааааааааааааааааааааааааааааааауаааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааоаааааааааааа, {-›} верным….спасибо - person hvgotcodes; 28.05.2010