博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
junit学习笔记(一):JUnit的安装和测试原则
阅读量:4072 次
发布时间:2019-05-25

本文共 2767 字,大约阅读时间需要 9 分钟。

这里以一个加减乘除的类为例子。
最终工程如下:
1、导入junit的jar,不建议直接使用eclipse 中提供的包
      junit的jar包下载:  最新版本的是4.11
     
这里注意一个问题
如果是用4.11版本的话,同时还要下载hamcrest 1.3,下载地址-> ,使用时,要同时导入这两个包才可以!!
      如果是之前版本的,只需要导入一个junit的jar包就可以了
2、在src目录下编写服务代码,这里是一个只有加减乘除功能的类
package com.fjnu.util;public class Calculate {	public int add(int a, int b){		return a+b;	}	public int minus(int a, int b){		return a-b;	}	public int divide(int a,int b){		return a/b;	}	public int multi(int a, int b){		return a*b;	}}
3、创建测试类
     基本原则:1、在eclipse中创建一个source folder命名为test
                     2、创建一个测试类所在的包,包的名称和要测试的类一致
package com.fjnu.util;import org.junit.Before;import org.junit.Test;// 静态导入import static org.junit.Assert.*;public class TestCalculate {	private Calculate cal;		// 执行任意一个方法之前都会执行setUp方法	@Before	public void setUp(){		cal = new Calculate();	}		// 加了@Test表示该方法是一个单元测试 	@Test	public void testAdd(){		/*		 * 以下是一个简单的断言的编写		 * 第一个参数是如果出错给出的提示信息		 * 第二个表示期望值,通常是用户指定的内容		 * 第三个表示代码返回的实际值		 */	//	Assert.assertEquals("加法有问题", 34, cal.add(12,22)); 		/* 		 * 由于包进行了静态导入之后 		 * Assert中的所有静态方法就不用再添加类名了 		 * 这样可以有效地兼容junit3 		 */ 		assertEquals("加法有问题", 34, cal.add(12,22));	} 	@Test 	public void testMinus(){ 		int res = cal.minus(12, 2); //		Assert.assertEquals("减法有问题", 10, res); 		assertEquals("减法有问题", 10, res); 	} 	// 表示这个测试类应该抛出ArithmeticException,如果不抛出就报错 	@Test(expected=ArithmeticException.class) 	public void testDivide(){ 		int res = cal.divide(12, 0); 		assertEquals("除法有问题", 6, res); 	} 	 	// 时间单位为ms 	@Test(timeout=190) 	public void testTime() throws InterruptedException{ 	 	Thread.sleep(209); 		int rel = cal.divide(12, 2); 	} 	 	@Test 	public void testMulti(){ 		int res = cal.multi(12, 2); 		assertEquals("乘法有问题",24,res); 	} 	//hamcrest 1.3}
4、Junit3和Junit4两者之间的区别是非常明显的
     在Junit3,中如果某个类需要是测试类,必须将其继承于TestCase,如果某个方法需要是测试方法,必须让这个方法通过testXXX开头,在Junit3中如果希望指定某个测试方法运行之前运行某个初始化方法,这个方法名称必须是setUp,如果希望在某个测试方法运行之后运行某个释放资源的方法,这个方法的名称必须是tearDown
       在Junit4中,一个POJO类就是一个测试类,测试方法通过@Test来标识,初始化方法通过@Before,释放资源的方法通过@After来标注。但是为了让junit4中的测试类在junit3中也可以使用,习惯于把初始化方法命名为setUp,释放资源的方法命名为tearDown,测试方法也同样以test开头
5、如何使用断言
     在junit4中提供了一个Assert的类,这个类中有大量的方法进行断言的处理,在junit3中由于继承了TestCase,这个TestCase中提供了大量的Assert方法。 在junit4中,为了与junit3兼容,可以静态导入包Assert,即import static org.junit.Assert.*;  这样的话使用Assert中的所有静态方法就不用再添加类名了,可以有效地兼容junit3
6、expected参数,测试异常对象:    @Test(expected=ArithmeticException.class),表示检查是否抛出ArithmeticException
// 表示这个测试类应该抛出ArithmeticException,如果不抛出就报错       @Test(expected=ArithmeticException. class)       public void testDivide(){             int res = cal.divide(12, 2);             assertEquals( "除法有问题", 6, res);      }
7、
timeout参数,
性能测试:
@Test(timeout=190),表示要在190ms内完成
// 时间单位为ms       @Test(timeout=190)       public void testTime() throws InterruptedException{            Thread. sleep(189);             int rel = cal.divide(12, 2);      }
 
你可能感兴趣的文章
zookeeper单机集群安装
查看>>
do_generic_file_read()函数
查看>>
Python学习笔记之数据类型
查看>>
Python学习笔记之特点
查看>>
shell 快捷键
查看>>
VIM滚屏操作
查看>>
EMC 2014存储布局及十大新技术要点
查看>>
linux内核内存管理(zone_dma zone_normal zone_highmem)
查看>>
将file文件内容转成字符串
查看>>
循环队列---数据结构和算法
查看>>
优先级队列-数据结构和算法
查看>>
链接点--数据结构和算法
查看>>
servlet中请求转发(forword)与重定向(sendredirect)的区别
查看>>
Spring4的IoC和DI的区别
查看>>
springcloud 的eureka服务注册demo
查看>>
eureka-client.properties文件配置
查看>>
MODULE_DEVICE_TABLE的理解
查看>>
platform_device与platform_driver
查看>>
platform_driver平台驱动注册和注销过程(下)
查看>>
.net强制退出主窗口的方法——Application.Exit()方法和Environment.Exit(0)方法
查看>>