JAVA单元测试注解详解及代码演示

JAVA单元测试注解详解及代码演示

单元测试能不通过main方法运行我们想要运行的方法,所以用于测试某段代码的时候会很方便。

先假设一个简单的类

实现加法和除法两个方法

public class Demo {

	public int add(int a ,int b){
		return a + b ;
	}
	
	public int devide(int a ,int b){	
		try {
			Thread.sleep(105) ;
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return a / b ;
	}
}

下面在另一个类类面开始单元测试

在进行单元测试的时候要引入org.junit.jupiter.api.Test或者org.junit.Test两者都可以进行单元测试,但是版本不同,有些地方或许会不兼容

下面以org.junit.Test为例子做单元测试

import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
/**
 * 测试方法的写法:
 * 		  1. 方法必须是公有的
 *  	  2. 方法返回值必须是void
 *  	  3. 方法必须是无参
 *  	  4. 必须加@Test注解
 *  
 *       @before  :是每个测试方法执行之前都必须要调用一次此方法
 *       @beforeclass: 是所有测试方法执行之前都必须要调用一次此方法(只会调用一次)
 *       
 *       @after:
 *       @afterclass:
 * @author Administrator
 *
 */
public class DemoTest {

	static Demo d ;
	
//	@Before
//	public void before(){
//		System.out.println("我先执行了");
//		d = new Demo() ;
//	}
	
	@BeforeClass
	public static void beforeclass(){
		System.out.println("我是静态的方法");
		d = new Demo() ;
	}
	
	@Test
	public void testAdd(){
	//	demo() ;
		Assert.assertEquals(10, d.add(4, 6)) ;
	}
	
	@Test(timeout=100)
	public void testDevide(){
		//demo() ;
		Assert.assertEquals(2, d.devide(10, 2)) ;
	}
	
//	public void demo(){
//		//System.out.println("啊啊啊啊啊啊啊啊啊");
//		d = new Demo() ;
//	}
	
	@After
	public void after(){
		System.out.println("我执行完了");
	}
}

在eclipse中运行没有出错的情况

JAVA单元测试注解详解及代码演示_第1张图片

运行结果如下

JAVA单元测试注解详解及代码演示_第2张图片

在eclipse中运行出错的情况

把断言里面的10改成8,断言就会报错,单元测试的运行结果也会变成红色。
JAVA单元测试注解详解及代码演示_第3张图片

运行超时的情况

单元测试testDevide()方法时,使用@Test(timeout=100)可以设定运行时间时100ms,如果超时单元测试就会报错。这样可以测试方法的时间复杂度,为后续优化提供帮助。

后记(注意事项)

使用单元测试时,需要导入以下几个jar包:
在这里插入图片描述
这三个jar包可以直接到maven仓库官网(https://mvnrepository.com/)下载:
以下载hamcrest-core-1.3.jar为例:
第一步:搜索hamcrest-core
JAVA单元测试注解详解及代码演示_第4张图片
第二步:点进去搜索结果,一般是第一个
JAVA单元测试注解详解及代码演示_第5张图片
第三步:选择版本
JAVA单元测试注解详解及代码演示_第6张图片
第四步,点击jar就可以直接下载。jar里面一般是.class文件(或者说字节码文件),所以不会很大。
JAVA单元测试注解详解及代码演示_第7张图片

hamcrest-library-1.3.RC2.jar和junit-4.12.jar同理可以在maven下载到。

你可能感兴趣的:(JAVA单元测试注解详解及代码演示)