使用 Mockito 未调用 Object 参数的验证方法

Posted

技术标签:

【中文标题】使用 Mockito 未调用 Object 参数的验证方法【英文标题】:Verify method with Object argument not called using Mockito 【发布时间】:2021-07-24 06:44:12 【问题描述】:

我在DatabaseService 类中有一个带有签名public void save(Object object) 的方法。

我有一个调用该方法的代码块:

databaseService.save(bypassCode)
if(condition to check if user details have been changed) 
    databaseService.save(user)

如果我想测试 databaseService.save(user) 没有被调用,那么我该如何使用 Mockito(版本 3.3.3)呢?

【问题讨论】:

【参考方案1】:

我相信你可以这样做:

Mockito.verify(databaseService, Mockito.never()).save(user);

【讨论】:

【参考方案2】:

问题已经通过几个选项得到了回答

import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;

// ...

verify(dependency, never()).someMethod();

verifyZeroInteractions(yourMock)

How to verify that a specific method was not called using Mockito?

【讨论】:

以上是关于使用 Mockito 未调用 Object 参数的验证方法的主要内容,如果未能解决你的问题,请参考以下文章

Mockito:等待与参数匹配的调用

如何使用 Mockito 验证带有 ByteBuffer 参数的调用?

使用 Mockito 多次调用具有相同参数的相同方法

使用 Mockito 多次调用具有相同参数的相同方法

Mockito 异常 - when() 需要一个参数,该参数必须是模拟上的方法调用

我如何使用Mockito来验证带有ByteBuffer参数的调用?