Java单元测试工具:JUnit4(一)——概述及简单例子

本文介绍JUnit的基本概念及其在Java开发中的作用,并通过一个简单的计算器类演示如何编写和运行JUnit测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(一)JUnit概述及一个简单例子

        看了慕课网的JUnit视频教程: http://www.imooc.com/learn/356,总结笔记。
        这篇笔记记录JUnit的概述,以及一个快速入门的例子。

1.概述

1.1 什么是JUnit
        ①JUnit是用于编写可复用测试集的简单框架,是xUnit的一个子集。xUnit是一套基于测试驱动开发的测试框架,有PythonUnit、CppUnit、JUnit等。
        ②Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。
        ③多数Java的开发环境都已经集成了JUnit作为单元测试的工具,比如Eclipse。
1.2 为什么要使用测试工具
        ①测试框架可以帮助我们对编写的程序进行有目的地测试,帮助我们最大限度地避免代码中的bug,以保证系统的正确性和稳定性。
        ②很多人对自己写的代码,测试时就简单写main,然后sysout输出控制台观察结果。这样非常枯燥繁琐,不规范。缺点:测试方法不能一起运行,测试结果要程序猿自己观察才可以判断程序逻辑是否正确。
        ③JUnit的断言机制,可以直接将我们的预期结果和程序运行的结果进行一个比对,确保对结果的可预知性。
1.3 相关链接
JUnit官网: http://junit.org/

2.简单例子快速入门

2.1 创建简单业务类
        使用Eclipse创建一个项目,导入JUnit相关包,因为eclipse集成了JUnit框架,所以可以直接右键项目,选择Build Path → 点击Add Libraries → 选择JUnit  → 点击Next,选择JUnit版本,然后Finish。(其实也可以下载jar包作为用户库来添加)
        编写一个简单的计算类:Calcuate类
package jtzen9.util;
/**
 * 实现加减乘除的简单计算类
 * @author Zen9
 *
 */
public class Calcuate {
	public int add(int a,int b){
		return a+b;
	}
	public int subtract(int a,int b){
		return a-b;
	}
	public int multiply(int a,int b){
		return a*b;
	}
	public int divide(int a,int b){
		return a/b;
	}
}
2.2 创建测试类
        ①右键Calcuate类,new 一个 JUnit Test Case:


        ②弹出的对话框,暂时不做修改,直接点击next:(这样创建的测试类会在同一个包下,暂时不管测试类和业务类的隔离)


        ③勾选要测试的方法,点击Finish:




2.3 修改生成的测试类代码
        上面步骤生成的测试类只包含测试方法的模板,并没有具体的测试细节,修改成如下:(其中有比较多的重复代码,暂时不管;并将减法的测试设为有问题)
package jtzen9.util;
import org.junit.Assert;
import org.junit.Test;
public class CalcuateTest {
	Calcuate calcuate;

	@Test
	public void testAdd() {
		calcuate = new Calcuate();
		int result = calcuate.add(2, 3);
		Assert.assertEquals("加法有问题", 5, result);
		/*
		 * "加法有问题":期望值和实际值不一致时,显示的信息
		 * 5 :期望值
		 * result :实际值
		 */
	}

	@Test
	public void testSubtract() {
		calcuate = new Calcuate();
		int result = calcuate.subtract(12, 2); 
		Assert.assertEquals("减法有问题", 10000, result); //故意设置减法期望值为10000
	}

	@Test
	public void testMultiply() {
		calcuate = new Calcuate();
		int result = calcuate.multiply(2, 3);
		Assert.assertEquals("乘法有问题", 6, result);
	}

	@Test
	public void testDivide() {
		calcuate = new Calcuate();
		int result = calcuate.divide(6, 3);
		Assert.assertEquals("除法有问题", 2, result);
	}
}
2.4 运行结果
        右键测试类,选择Run As , JUnit Test,结果如下:

        总共有4个测试方法,运行了4个方法;其中failures有1个,即有一个方法的输出结果跟我们的预期不一样。




### 如何使用 JUnit 测试 Java 代码 JUnit种流行的 Java 单元测试框架,它可以帮助开发者高效地验证代码的功能性和正确性。以下是关于如何使用 JUnitJava 代码进行测试的相关说明。 #### 配置 JUnit 依赖 为了在项目中使用 JUnit,首先需要将其作为依赖项引入到项目的构建工具中。如果使用 Maven 构建工具,则可以在 `pom.xml` 文件中添加以下依赖: ```xml <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>5.9.0</version> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>5.9.0</version> <scope>test</scope> </dependency> ``` 对于 Gradle 用户,可以将以下内容添加到 `build.gradle` 中: ```gradle dependencies { testImplementation 'org.junit.jupiter:junit-jupiter-api:5.9.0' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.9.0' } ``` 这步骤确保了 JUnit 能够被集成到开发环境中[^1]。 #### 创建测试目录结构 通常情况下,在基于 Maven 或 Gradle 的项目中,默认会有个专门用于存储测试文件的目录——`src/test/java`。所有的测试类都应该放置在这个目录下,以便于区分生产代码和测试代码。 #### 编写测试类 下面是简单例子来展示如何编写个基本的单元测试案例。假设我们有如下功能函数需要测试: ```java public class Calculator { public int add(int a, int b) { return a + b; } } ``` 对应的测试类可能看起来像这样: ```java import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; class CalculatorTest { @Test void testAdd() { Calculator calculator = new Calculator(); assertEquals(2, calculator.add(1, 1), "The addition did not work as expected"); } } ``` 这里的关键点在于使用了 `@Test` 注解标记的方法表示这是个测试方法;而 `assertEquals()` 方法则用来比较实际结果与预期结果是否致[^3]。 #### 运行测试 完成上述步骤之后就可以执行这些测试了。大多数 IDE(如 IntelliJ IDEA 和 Eclipse)都内置支持直接运行 JUnit 测试的能力。另外也可以通过命令行方式利用 Maven 或 Gradle 来触发测试过程。例如,在终端输入以下命令即可启动所有定义好的测试: ```bash mvn test # 或者对于Gradle用户来说: ./gradlew test ``` 以上就是整个流程的概述[^2]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值