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' )
Другие вопросы по тегам