一、环境配置
添加JUnit依赖 - Maven项目:
在`pom.xml`中添加以下依赖(推荐使用最新版本,如5.10.0):
```xml
junit-jupiter-api
junit-jupiter-engine
```
- Gradle项目:在`build.gradle`中添加:
```groovy
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.0'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.10.0'
```
- IDE配置:Eclipse或IntelliJ IDEA等IDE可自动识别Maven/Gradle依赖,无需手动添加JAR文件。
创建测试类目录结构 测试类应位于`src/test/java`目录下,命名规则为`被测试类名+Test`(如`CalculatorTest`),并置于与被测试类相同的包中。
二、编写测试用例
基础测试方法
使用`@Test`注解标记测试方法,通过`assertEquals`等断言验证结果。例如测试`Calculator`类的`add`方法:
```java
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class CalculatorTest {
@Test
public void testAddition() {
Calculator calculator = new Calculator();
assertEquals(5, calculator.add(2, 3));
}
}
```
使用断言类
JUnit提供`Assertions`类支持多种断言方式,如`assertTrue`、`assertFalse`、`assertNull`等,可满足不同场景需求。
三、运行与结果分析
运行测试
- IDE集成: 通过右键菜单或快捷键(如Ctrl+Shift+T)运行测试,结果会以绿色(通过)、红色(失败)或黄色(跳过)显示。 - 命令行执行
结果解读 - 绿色表示测试通过,红色表示失败,黄色表示测试被跳过。失败时会显示错误信息和堆栈跟踪,帮助定位问题。
四、高级用法与技巧
注解优化
- 使用`@BeforeEach`和`@AfterEach`注解在每个测试前后执行初始化和清理操作,减少重复代码。
- `@BeforeAll`和`@AfterAll`用于类级别的初始化和清理,适用于需要一次性设置资源的场景。
参数化测试
通过`@ParameterizedTest`和`@ValueSource`等注解实现参数化测试,减少冗余代码。例如测试多个输入组合:
```java
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
public class CalculatorTest {
@ParameterizedTest
@ValueSource(ints = {2, 3, 4})
public void testAddition(int a, int b) {
Calculator calculator = new Calculator();
assertEquals(a + b, calculator.add(a, b));
}
}
```
集成其他工具
- 代码覆盖率: 结合Jacoco等工具分析测试覆盖率,确保关键代码被充分测试。 - 持续集成
五、注意事项
设计原则:遵循“测试驱动开发(TDD)”理念,先写测试再实现代码,通过测试驱动重构。
异常处理:使用`@Test`的`expected`属性或`assertThrows`断言验证异常情况。
版本选择:优先使用JUnit 5,其功能更全面且支持并行测试[