2016-10-13 6 views
1

Я пишу приложение Java с использованием Groovy Spock для тестирования. В контроллере я хочу проверить, что что-то произошло в функции утилит.
Функция утилит принимает String и 2 обратных вызова (Consumer).
Смещение функции утилиты, как я могу выполнить один из обратных вызовов?Выполнение обратного вызова из spock mock

Java

public void authenticate(String token, Consumer<User> success, Consumer<Throwable> failure) 

Groovy

def "..."(){ 
    given: 
    TokenHandler th = Mock() 
    // execute the failure callback 
    th.authenticate(_) >> { token, success, failure -> failure.accept() } 
} 
+0

Сообщение весь код теста Спок. Как сейчас, похоже, вы пытаетесь высмеять класс, который вы также хотите протестировать. Это не имеет смысла (если вы не хотите использовать Spock spies) – kazanaki

ответ

0

Инициализация издеваться неправильно смотрите следующую инициализацию:

Consumer<User> successConsumer = new Consumer<User>() 
Consumer<Throwable> failureConsumer = new Consumer<Throwable>() 

TokenHandler tokenHandlerMock = Mock(TokenHandler){ 
    th.authenticate(_) >> [token, successConsumer, failureConsumer] 
}