📜  Mockito-首次申请(1)

📅  最后修改于: 2023-12-03 15:32:55.248000             🧑  作者: Mango

Mockito - 首次申请

Mockito是一个流行的Java测试框架,用于模拟对象和打桩(Stub)。

什么是模拟?

模拟是一种测试技术,用于创建虚假的对象(也称为Mock对象),以测试代码中的其他对象与其交互的方式。使用模拟可以减少测试代码的复杂性和依赖性。

什么是打桩?

打桩是一种测试技术,用于对方法或函数的返回值进行硬编码。这样,当调用该方法或函数时,它将返回预定的值,而不是实际的值。

如何使用Mockito进行模拟和打桩?

Mockito可以通过以下步骤使用:

1.导入Mockito依赖

<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-core</artifactId>
    <version>3.11.2</version>
    <scope>test</scope>
</dependency>

2.创建Mock对象

List<String> mockedList = Mockito.mock(List.class);

3.打桩

Mockito.when(mockedList.get(0)).thenReturn("first");

4.执行测试

assertEquals("first", mockedList.get(0));
Mock对象的验证

Mockito还提供了一种验证Mock对象的方法。可以验证Mock对象是否已调用某些方法,以及调用次数等。

以下是验证Mock对象调用方法的示例:

// 验证给定Mock对象上具有零次调用的方法
Mockito.verify(mockedList, Mockito.never()).clear();

// 验证调用一次给定Mock对象上的方法
Mockito.verify(mockedList).add("one");

// 验证给定Mock对象上调用的次数
Mockito.verify(mockedList, Mockito.times(2)).add("two");
Mockito的其他功能

Mockito还提供了许多其他功能,例如:

  • 对于无法使用Mockito创建Mock对象的对象,可以使用Mockito spies
  • 验证无序调用和确保调用顺序等
结论

Mockito是一个功能强大的Java测试框架,可以使用它进行模拟和打桩。此外,它还提供了许多其他功能,使测试变得更加容易。