这里以一个加减乘除的类为例子。
最终工程如下:
1、导入junit的jar,不建议直接使用eclipse 中提供的包
junit的jar包下载:点击打开链接最新版本的是4.11
如果是之前版本的,只需要导入一个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); }
相关推荐
Junit学习笔记,希望有用~~~~~~~~~~~~~~~~~~~~~~
JUnit是一款由Erich Gamma(《设计模式》的作者)和Kent Beck(极限编程的提出者)编写的开源的回归测试框架,供Java编码人员做单元测试之用。当前版本4.1,可以从www.junit.org网站上获得。与早期的JUnit 3相比,...
Junit学习笔记和课件,欢迎学习爱好者下载资源,共同学习。。
NULL 博文链接:https://greatjone.iteye.com/blog/1161009
JUnit学习笔记之NetBeans入门篇,一句话好东西
现在的版本都4.3.1,3.8.1的感觉好象不好找,虽然www.junit.org能够找到,但对我们这种英语不好的来说,还是不好找,再说了,现在好多的教程都是以3.8.1来写的,所以在这里把我找到的3.8.1传上来供大家以后下载 博文链接:...
JUnit4是JUnit框架有史以来的最大改进,其主要目标便是利用Java5的Annotation特性简化测试用例的编写。 先简单解释一下什么是Annotation,这个单词一般是翻译成元数据。元数据是什么?元数据就是描述数据的数据。也...
中间有各种Junit文档,Junit各种操作手册!3.8--4.9。还有本人学习的笔记。绝对值得下载。
Junit良葛格学习笔记,喜欢的下啊!!!
JUnit学习笔记及练习用例,主要分为JUnit3.8.2和JUnit4.8.1两个版本。
并提及了用Ant,maven和Eclipse来自动化Junit测试。 第二部分:测试策略 第6章:描述了如何用stub来执行单元测试。这一章介绍了一个连接到web服务器的示例应用,并描述了如何应用 Stub方法对远程URL的方法执行...
JUnit知识点滴集合笔记,这个包里面包括了好几篇文档,一定会让你对JUNIT有一个全新的认识。 JUnit 4 抢先看.doc JUnit in java 真正的测试用例实战.doc JUnit起步.doc junit实现过程.doc JUnit中如何测试异常.doc ...
以一个简单的DEMO介绍如何在Eclipse下使用JUnit4。供初次接触JUnit的同学学习
包含java特性、java学习方法、网络资源汇总、jdk下载和安装、path与CLASSPATH的设置、java基本语法、关于对象的认识、数组、字符串(String类))、Ant简介、JUnit简介。 作者:林信良(网络化名良葛格) 学历:台湾大学...
NULL 博文链接:https://thisliy.iteye.com/blog/786293
Selenium+Eclipse+Junit+TestNG自动化学习笔记
雾山的Robotium学习笔记---使用junitreport导出测试报告http://blog.csdn.net/tt75281920/article/details/29852517
林信良学习笔记(内容):ajax学习笔记,算法学习笔记,计算机图形学,C++学习笔记,设计模式,Hibernate学习笔记,Java学习笔记,JSF,JSP/Servlet,JUnit,Spring,Struts等