Groovy Mock для метода запроса по требованию. вернуть это
Я использую класс Groovy MockFor для проверки чего-то подобного.
У меня есть AClass с public AClass aMethod()
, который должен возвратить некоторый экземпляр AClass. (То же самое или нет, это не имеет значения.) В моем фиктивном классе я хочу вернуть точно такой же экземпляр прокси для правильной и простой проверки.
Но не могу найти способ сделать это.
MockFor mock = new MockFor(AClass)
mock.demand.aMethod { ... ->
log.info("aMethod was called!")
// Here I want to return same mock proxy instance!
return //<this???>
}
def instance = mock.proxyDelegateInstance()
instance = instance.aMethod(...) // Call to demanded method. In AClass aMethod returns AClass instance!
// so, I will be able to demand aMethod multiple times, and then ask
mock.verify(instance) // Will check, how many times method was called for same instance.
Я думаю, я могу установить делегат закрытия, а затем потребовать его, но это не выглядело как хорошее решение.
Итак, я прошу совета.
1 ответ
Может быть, это?
def mock = new MockFor( AClass )
def instance
mock.demand.aMethod { a ->
println "Mocked $a"
instance
}
instance = mock.proxyDelegateInstance()
instance = instance.aMethod( 'woo' )