使用 JUnit 进行 Java 代码的单元测试

这篇博客详细介绍了如何使用JUnit进行Java代码的单元测试,包括下载安装JUnit,使用@Test注解编写和执行测试方法,@Ignore跳过未完成的方法,@Before和@After进行前置和后置工作,@BeforeClass和@AfterClass执行一次性工作,设置@Test的timeout限制测试时间,监控预期异常,指定测试Runner,使用参数化测试处理大量数据,以及打包测试多个测试类。
摘要由CSDN通过智能技术生成

下载安装 JUnit 的相关文件

首先我们需要先下载相应的 JUnit 相关的 JAR 包,下载的过程可以去 JUnit 的官方网站,也可以直接通过 Maven 资源仓库来完成,我这里直接通过开源中国社区在国内的Maven 镜像下载了 JUnit-4.8.2.jar 的版本,如下图所示:

开源中国社区 Maven 镜像仓库

直接搜索关键字"junit"即可,我们可以从搜索结果中找到红色方框1中的对应项,选中之后就会在左下方列出目前可以获得的 junit  的所有版本,这里我选择了 4.8.2 的版本(红色方框2),然后点击右侧的 Download 按钮即可下载这個 JAR 包,不过依我在实践中的经验,最好同时下载对应版本的 javadoc 和 source 两個包,前者是文档,后者是对应的源代码,然后将它们直接引入到我们的 eclipse 的工程中即可。我这里创建了壹個普通的 Java Project ,并给它取名 junit-study ,导入 JAR 包之后目前的样子如下图所示:


使用简单的 @Test 注解实现我们的测试方法的编写和执行

准备工作做好之后,接下来我们就可以开始尝试编写壹個简单的测试代码了。首先,我们编写了壹個 Calculator 类,并提供五個方法分别完成加减乘除以及求平方的运算。代码如下:

package net.oschina.bairrfhoinn.main;

public class Calculator {

	public void add(int n){
		result += n;
	}
	
	public void substract(int n){
		result -= n;
	}
	
	public void multiply(int n){
		result *= n;
	}
	
	public void divide(int n){
		result /= n;
	}
	
	public void square(int n){
		result = n * n;
	}
	
	public int getReuslt(){
		return result;
	}
	
	public void clear(){
		result = 0;
	}
	
	private static int result;
}
在测试类中用到了JUnit4框架,自然要把相应地Package包含进来。最主要地一个Package就是org.junit.*。把它包含进来之后,绝大部分功能就有了。还有一句话也非常地重要“import static org.junit.Assert.*;”,我们在测试的时候使用的壹系列assertEquals()方法就来自这个包。大家注意壹下,这是壹個静态包含(static),是JDK5中新增添的壹個功能。也就是说,assertEquals是Assert类中的壹系列的静态方法,壹般的使用方式是Assert. assertEquals(),但是使用了静态包含后,前面的类名就可以省略了,使用起来更加的方便。

另外要注意的是,我们的测试类是壹個独立的类,没有任何父类。测试类的名字也可以任意命名,没有任何局限性。所以我们不能通过类的声明来判断它是不是一个测试类,它与普通类的区别在于它内部的方法的声明,我们接着会讲到。在测试类中,并不是每壹個方法都是用于测试的,所以我们必须使用“注解”来明确表明哪些是测试方法。“注解”也是JDK5的壹個新特性,用在此处非常恰当。我们可以看到,在某些方法的前有@Before、@Test、@Ignore等字样,这些就是注解,以壹個“@”作为开头。这些注解都是JUnit4自定义的,熟练掌握这些注解的含义,对于编写恰当的测试类非常重要。

接下来我们创建壹個测试类 CalculatorTest.java,代码如下:

package net.oschina.bairrfhoinn.test;

import static org.junit.Assert.*;

import org.junit.Test;

im
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值