使用 isNull 时出现 Java UnfinishedVerificationException

标签 java mockito

我有以下模拟:

when(manager.list(eq(userId), eq(0), isNull())).thenReturn(completedFuture(user));

// call some method

verify(configurationsManager).list(any(), any(), isNull());

当我运行这个时,我得到一个

org.mockito.exceptions.misusing.UnfinishedVerificationException: 
Missing method call for verify(mock) here:

它引用 verify(configurationsManager).list(any(), any(), isNull()); 行。我做错了什么?

list方法是:

public CompletionStage<User> list(UserId, int, Token)

其中 UserIdToken 是自定义类。

最佳答案

我认为您的问题可能是在匹配 list() 方法的第二个 int 类型变量时使用 any() 方法。根据我的经验,any() 方法往往不适用于原始类型。因此,我会使用 anyInteger() 来代替。因此,您的新行将是:

verify(configurationsManager).list(any(), anyInteger(), isNull());

关于使用 isNull 时出现 Java UnfinishedVerificationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60010741/

相关文章:

Eclipse启动错误: JRE/JDK must be available

unit-testing - kotlin + Spring boot 中的单元测试休息 Controller

java - Mockito - 验证对象根本没有被调用

java - Mockito 不能模拟依赖于 Unmarshaller 的类

java - 当 Log4j 创建 java.io.FileOutputStream 时,如何使用 Powermockito 模拟 java.io.FileOutputStream?

java - 如何防止 Eclipse 自动删除我的 exe 文件

java - 如何将奥地利电子卡中的 ResponseAPDU 解码为 XML?

Java 8 hashmap 高内存使用率

java - 使用 junit 和 easymock 持久保存模拟对象

java - 无法在我的测试中注入(inject) Bean(@Spy 注入(inject) bean 的子级)