我正在使用Java编写Groovy Spock应用程序进行测试。在控制器中,我想测试实用程序功能中是否发生了某些事情。
Utilitys函数接受String和2个回调(Consumer)。
模拟实用程序功能,如何执行回调之一?

爪哇

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() }
}

最佳答案

模拟的初始化错误,请参见以下初始化:

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

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

关于java - 从Spock模拟执行回调,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40019031/

10-10 07:54