java - Mockito returnsFirstArg() 使用

标签 java java-8 mockito

我已经开始使用 Mockito AdditionalAnswers#returnsFirstArg,这很棒:

when(myMock.myFunction(anyString())).then(returnsFirstArg());

但我想知道是否有一种简单的方法来提取输入参数以便在构造函数中使用,例如:

when(myMock.myFunction(anyString())).thenReturn(new MyObject((String)returnsFirstArg()));

(这显然行不通...)

最佳答案

恕我直言,最简单(唯一?)的方法是使用 thenAnswer 方法,它不仅可以返回一个值,还可以实际执行一些代码。 Java 8 使这变得特别优雅,因为您可以只使用匿名 lambda:

when(myMock.myFunction(anyString()))
    .thenAnswer(i -> new MyObject((String)i.getArguments()[0]);

关于java - Mockito returnsFirstArg() 使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43639716/

相关文章:

Java 8 Lambda 语法更改

java - 使用参数化流跟踪迭代

java - 是否可以使用 @Spy 表示法在 Mockito 中声明但不能实例化一个 spy 对象?

java - 测试任何 future 的类(class)水平变化

java - Datafx 链接操作(不工作)

java - 使用 datainput/-outputstream 通过 java 套接字发送 jpg-图像时出现问题

java - 使用 ScheduledExecutorService 在同一周期内运行多个线程

java - 在 cassandra 中创建表的关键空间名称问题

java - 我需要迭代和计算 Nested Map<key, someObjectArray[]>

java - 如何避免上课自用