Mockito 注解

2025年3月17日 | 阅读 3 分钟

Mockito 框架提供各种注解,使代码简单易懂。 此外,它减少了代码行数,有助于专注于业务逻辑。 在 Mockito 中,当我们想在不同的地方使用模拟对象以避免多次调用相同的方法时,注解非常有用。

Mockito 注解如下:

  • @Mock: 它用于模拟对象,有助于最大限度地减少重复的模拟对象。 由于参数名称(字段名称)用于识别模拟对象,因此它使测试代码和验证错误更易于阅读。 @Mock 注解在 org.mockito 包中可用。
    以下代码段显示了如何使用 @mock 注解

注意:@Mock 注解始终与 @RunWith 注解一起使用。

  • @RunWith: 这是一个类级别的注解。 它用于保持测试的清洁并改进调试。 它还会检测测试中可用的未使用的存根,并初始化使用 @Mock 注解的模拟对象。 @RunWith 注解在 org.mockito.junit 包中可用。
    以下代码段显示了如何使用 @RunWith 注解

在上面的代码片段中,MockitoJUnitRunner 类用于检查是否在需要时创建并自动装配了所有模拟对象。

  • @InjectMocks: 它标记应执行注入的字段或参数。 它允许速记模拟和间谍注入,并最大限度地减少重复的模拟和间谍注入。 在 Mockito 中,模拟对象通过 setter 注入、构造函数注入和属性注入来注入。 @InjectMocks 注解在 org.mockito 包中可用。
    以下代码段显示了如何使用 @InjectMocks 注解
  • @Captor: 它允许创建字段级别的参数捕获器。 它与 Mockito 的 verify() 方法一起使用,以获取调用方法时传递的值。 与其他注解一样,@Captor 注解也在 org.mockito 包中可用。
    以下代码段显示了如何使用 @Captor 注解
  • @Spy - 它允许创建部分模拟对象。 换句话说,它允许在间谍对象中速记包装字段实例。 与其他注解一样,@Spy 注解也在 org.mockito 包中可用。
    以下代码段显示了如何使用 @Spy 注解

Mockito 注解的示例 (@Mock, @RunWith, @InjectMocks, @Captor, @Spy)

在这里,我们将创建一个使用注解 @Mock、@RunWith、@InjectMocks、@Captor、@Spy 进行测试的示例。 以下是创建 Mockito 注解示例的步骤

步骤 1:创建一个名为 ToDoService 的接口,其中包含两个未实现的方法。

ToDoService.java

步骤 2: 创建一个名为 ToDoBusiness 的实现类。

ToDoBusiness.java

步骤 3: 创建一个名为 ToDoBusinessMock 的模拟测试,用于测试目的。 在以下代码中,我们将使用我们上面讨论的所有注解。

ToDoBusinessMock.java

输出

以下输出表明测试正在使用 Mockito 注解成功运行。

Mockito Annotations
下一个主题JUnit 规则