java - 从 spock 模拟执行回调

标签 java unit-testing groovy mocking spock

我正在使用 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/

相关文章:

grails - 如何将域强制转换为Grails中的集合集

java - 以编程方式获取数据源

java - java中如何根据环境加载资源文件?

java - 有 subview 时,Android onInterceptTouchEvent 不会执行操作

php - Laravel 5 控制台( artisan )命令单元测试

unit-testing - Haskell 程序覆盖率没有突出显示根本没有测试的模块

javascript - 生成加权随机数

java - 选择第二列(FileReader)

c++ - 如何使用VS2008 Pro自带的单元测试工具测试C++项目?

android - Groovy调用adb命令来提取文件,但是新文件不可见