概述
单元测试在 Java 开发中的重要性不言而喻,但有些时候,面对高高的屎山,复杂的依赖,在本地根本无法执行单元测试,这个时候,就需要 Mockito 来救急了。
Mockito是一个流行的Java库,用于创建测试中的模拟对象(mock objects)。它是在单元测试中用于隔离被测试的代码,以便对其进行独立测试。Mockito的主要功能是简化和增强测试的可读性和可维护性。
基本概念
-
模拟对象(Mock Object): 模拟对象是一个虚拟的对象,它模拟了实际对象的行为。通过模拟对象,你可以控制被测对象的依赖行为。
-
桩(Stubbing): 这是指为模拟对象的方法设置预定义的行为。例如,当调用某个方法时,返回指定的值。
-
验证(Verification): 验证是指检查模拟对象的方法是否按照预期被调用。
依赖说明
本文章主要用的依赖如下:
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>3.6.28</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>3.6.28</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-junit-jupiter</artifactId>
<version>3.6.28</version>
<scope>test</scope>
</dependency>
这些依赖项是用于Java项目的单元测试框架和库,主要涉及JUnit 5和Mockito。以下是对每个依赖项的详细讲解:
1. JUnit Jupiter API
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
-
功能:
junit-jupiter-api
是JUnit 5的核心模块之一,提供了编写测试的API。它包含了JUnit 5中所有的测试注解和断言功能,如@Test
、@BeforeEach
、@AfterEach
、@BeforeAll
、@AfterAll
等。 -
使用场景: 这个依赖是编写JUnit 5测试用例的基础,提供了定义和组织测试的基本框架。
-
测试范围: 由于其
scope
被设置为test
,它仅在测试编译和执行时可用,不会被打包到生产代码中。
2. Mockito Core
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId