我正在使用 Groovy Spock
编写一个 Java
应用程序进行测试。在 Controller 中,我想测试实用程序函数中是否发生了某些情况。
实用程序函数接受一个 String
和 2 个回调 (Consumer
)。
模拟实用程序函数,如何执行其中一个回调?
Java
public void authenticate(String token, Consumer<User> success, Consumer<Throwable> failure)
绝妙的
def "..."(){
given:
TokenHandler th = Mock()
// execute the failure callback
th.authenticate(_) >> { token, success, failure -> failure.accept() }
}
最佳答案
mock的初始化错误请看下面的初始化:
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/