[转]在Eclipse中使用JUnit实例
2015-05-13 21:02
176 查看
JUnit是一个非常强大的单元测试包,可以对一个/多个类的单个/多个方法测试..... 在Eclipse中使用JUnit 作者:asklxf 时间:2004-12-01 出处:J2ME开发网 责任编辑:方舟 [文章导读] JUnit是一个非常强大的单元测试包,可以对一个/多个类的单个/多个方法测试 [正文] 在Eclipse中使用JUnit
测试对于保证软件开发质量有着非常重要的作用,单元测试更是必不可少,JUnit是一个非常强大的单元测试包,可以对一个/多个类的单个/多个方法测试,还可以将不同的TestCase组合成TestSuit,使测试任务自动化。Eclipse同样集成了JUnit,可以非常方便地编写TestCase。
我们创建一个Java工程,添加一个example.Hello类,首先我们给Hello类添加一个abs()方法,作用是返回绝对值:
![](http://192.168.2.7/wordpress/wp-content/uploads/2006/07/jun071901.jpg)
(图一)
下一步,我们准备对这个方法进行测试,确保功能正常。选中Hello.java,右键点击,选择New->JUnit Test Case:
![](http://192.168.2.7/wordpress/wp-content/uploads/2006/07/jun071902.jpg)
(图二)
Eclipse会询问是否添加junit.jar包,确定后新建一个HelloTest类,用来测试Hello类。
![](http://192.168.2.7/wordpress/wp-content/uploads/2006/07/jun071903.jpg)
(图三)
选中setUp()和tearDown(),然后点击“Next”:
![](http://192.168.2.7/wordpress/wp-content/uploads/2006/07/jun071904.jpg)
(图四)
选择要测试的方法,我们选中abs(int)方法,完成后在HelloTest.java中输入:
![](http://192.168.2.7/wordpress/wp-content/uploads/2006/07/jun071905.jpg)
(图五)
JUnit会以以下顺序执行测试:(大致的代码) try {
HelloTest test = new HelloTest(); // 建立测试类实例
test.setUp(); // 初始化测试环境
test.testAbs(); // 测试某个方法
test.tearDown(); // 清理资源
}
catch…
setUp()是建立测试环境,这里创建一个Hello类的实例;tearDown()用于清理资源,如释放打开的文件等等。以test开头的方法被认为是测试方法,JUnit会依次执行testXxx()方法。在testAbs()方法中,我们对abs()的测试分别选择正数,负数和0,如果方法返回值与期待结果相同,则assertEquals不会产生异常。
如果有多个testXxx方法,JUnit会创建多个XxxTest实例,每次运行一个testXxx方法,setUp()和tearDown()会在testXxx前后被调用,因此,不要在一个testA()中依赖testB()。
直接运行Run->Run As->JUnit Test,就可以看到JUnit测试结果:
![](http://192.168.2.7/wordpress/wp-content/uploads/2006/07/jun071906.jpg)
(图六)
绿色表示测试通过,只要有1个测试未通过,就会显示红色并列出未通过测试的方法。可以试图改变abs()的代码,故意返回错误的结果(比如return n+1;),然后再运行JUnit就会报告错误。
如果没有JUnit面板,选择Window->Show View->Other,打开JUnit的View:
![](http://192.168.2.7/wordpress/wp-content/uploads/2006/07/jun071907.jpg)
(图七)
JUnit通过单元测试,能在开发阶段就找出许多Bug,并且,多个Test Case可以组合成Test Suite,让整个测试自动完成,尤其适合于XP方法。每增加一个小的新功能或者对代码进行了小的修改,就立刻运行一遍Test Suite,确保新增和修改的代码不会破坏原有的功能,大大增强软件的可维护性,避免代码逐渐“腐烂”。 ---------------- 【原创】Junit旅程之序 作者:wyingquan 原文网址:http://blog.csdn.net/wyingquan/archive/2005/02/23/299102.aspx 初次学会使用Junit的使用是通过这篇文章的(上文),自己尝试跟着做了一遍,结果发现它上面提供的代码例子是错误的,不过流程、图片都很清楚。所以你可以先看看它上面是怎么说的,至于测试的代码我稍做了改动,为的是只要说明问题就行——其实不难。
被测试的类代码:
public class HelloJunit {
public static int abs(int n){
return n>=0?n:(-n);
}
}
Junit的测试代码:
import junit.framework.TestCase;
public class HelloJunitTest extends TestCase {
public void testAbs() {
assertEquals(HelloJunit.abs(10),10);
assertEquals(HelloJunit.abs(-10),10);
}
}
主要代码行为assertEquals(HelloJunit.abs(10),10);
其中参数的意义为:
HelloJunit.abs(10)执行类HelloJunit的abs方法(参数为10,表示求10的绝对值)。
逗号后面的10表示为预期的结果(期望值)。
该行表示将期望值(10)与实际值(类HelloJunit的abs方法执行结果)进行比较,如果不相等则抛出异常。
这里只是一个简简单单的例子,Junit被大家称为优秀的白盒自动化测试框架,当然只有自己用过了才会了解。网上有许多的资料介绍这个框架,笔者也是从自身情况出发来学习它的。当然学习使用它是需要有一定基础的,笔者拥有C和C++的基础,对Java的学习也开始不久,所以在这里将力所能及的知识共享出来与大家分享,希望能够共同提高。另外笔者是专职的测试人员,所以在描述一些问题时大多都会以测试的角度来阐述。学习此框架的目的在于能够在工作中进行白盒测试,在以后的介绍中还会介绍白盒测试相关的理论和工具,希望大家能够一起提高进步。
测试对于保证软件开发质量有着非常重要的作用,单元测试更是必不可少,JUnit是一个非常强大的单元测试包,可以对一个/多个类的单个/多个方法测试,还可以将不同的TestCase组合成TestSuit,使测试任务自动化。Eclipse同样集成了JUnit,可以非常方便地编写TestCase。
我们创建一个Java工程,添加一个example.Hello类,首先我们给Hello类添加一个abs()方法,作用是返回绝对值:
![](http://192.168.2.7/wordpress/wp-content/uploads/2006/07/jun071901.jpg)
(图一)
下一步,我们准备对这个方法进行测试,确保功能正常。选中Hello.java,右键点击,选择New->JUnit Test Case:
![](http://192.168.2.7/wordpress/wp-content/uploads/2006/07/jun071902.jpg)
(图二)
Eclipse会询问是否添加junit.jar包,确定后新建一个HelloTest类,用来测试Hello类。
![](http://192.168.2.7/wordpress/wp-content/uploads/2006/07/jun071903.jpg)
(图三)
选中setUp()和tearDown(),然后点击“Next”:
![](http://192.168.2.7/wordpress/wp-content/uploads/2006/07/jun071904.jpg)
(图四)
选择要测试的方法,我们选中abs(int)方法,完成后在HelloTest.java中输入:
![](http://192.168.2.7/wordpress/wp-content/uploads/2006/07/jun071905.jpg)
(图五)
JUnit会以以下顺序执行测试:(大致的代码) try {
HelloTest test = new HelloTest(); // 建立测试类实例
test.setUp(); // 初始化测试环境
test.testAbs(); // 测试某个方法
test.tearDown(); // 清理资源
}
catch…
setUp()是建立测试环境,这里创建一个Hello类的实例;tearDown()用于清理资源,如释放打开的文件等等。以test开头的方法被认为是测试方法,JUnit会依次执行testXxx()方法。在testAbs()方法中,我们对abs()的测试分别选择正数,负数和0,如果方法返回值与期待结果相同,则assertEquals不会产生异常。
如果有多个testXxx方法,JUnit会创建多个XxxTest实例,每次运行一个testXxx方法,setUp()和tearDown()会在testXxx前后被调用,因此,不要在一个testA()中依赖testB()。
直接运行Run->Run As->JUnit Test,就可以看到JUnit测试结果:
![](http://192.168.2.7/wordpress/wp-content/uploads/2006/07/jun071906.jpg)
(图六)
绿色表示测试通过,只要有1个测试未通过,就会显示红色并列出未通过测试的方法。可以试图改变abs()的代码,故意返回错误的结果(比如return n+1;),然后再运行JUnit就会报告错误。
如果没有JUnit面板,选择Window->Show View->Other,打开JUnit的View:
![](http://192.168.2.7/wordpress/wp-content/uploads/2006/07/jun071907.jpg)
(图七)
JUnit通过单元测试,能在开发阶段就找出许多Bug,并且,多个Test Case可以组合成Test Suite,让整个测试自动完成,尤其适合于XP方法。每增加一个小的新功能或者对代码进行了小的修改,就立刻运行一遍Test Suite,确保新增和修改的代码不会破坏原有的功能,大大增强软件的可维护性,避免代码逐渐“腐烂”。 ---------------- 【原创】Junit旅程之序 作者:wyingquan 原文网址:http://blog.csdn.net/wyingquan/archive/2005/02/23/299102.aspx 初次学会使用Junit的使用是通过这篇文章的(上文),自己尝试跟着做了一遍,结果发现它上面提供的代码例子是错误的,不过流程、图片都很清楚。所以你可以先看看它上面是怎么说的,至于测试的代码我稍做了改动,为的是只要说明问题就行——其实不难。
被测试的类代码:
public class HelloJunit {
public static int abs(int n){
return n>=0?n:(-n);
}
}
Junit的测试代码:
import junit.framework.TestCase;
public class HelloJunitTest extends TestCase {
public void testAbs() {
assertEquals(HelloJunit.abs(10),10);
assertEquals(HelloJunit.abs(-10),10);
}
}
主要代码行为assertEquals(HelloJunit.abs(10),10);
其中参数的意义为:
HelloJunit.abs(10)执行类HelloJunit的abs方法(参数为10,表示求10的绝对值)。
逗号后面的10表示为预期的结果(期望值)。
该行表示将期望值(10)与实际值(类HelloJunit的abs方法执行结果)进行比较,如果不相等则抛出异常。
这里只是一个简简单单的例子,Junit被大家称为优秀的白盒自动化测试框架,当然只有自己用过了才会了解。网上有许多的资料介绍这个框架,笔者也是从自身情况出发来学习它的。当然学习使用它是需要有一定基础的,笔者拥有C和C++的基础,对Java的学习也开始不久,所以在这里将力所能及的知识共享出来与大家分享,希望能够共同提高。另外笔者是专职的测试人员,所以在描述一些问题时大多都会以测试的角度来阐述。学习此框架的目的在于能够在工作中进行白盒测试,在以后的介绍中还会介绍白盒测试相关的理论和工具,希望大家能够一起提高进步。
相关文章推荐
- [转]在Eclipse中使用JUnit实例
- JUnit教程 -- 使用Eclipse的JUnit实例
- Eclipse中使用JUnit进行单元测试
- Android JUnit Test for Eclipse使用入门
- eclipse for java ee 之JUnit使用
- JUnit java 单元测试基于白盒在 Eclipse 内的使用
- Junit 实例精讲基础教程(二) 使用@Test+expected、@Rule+ExpectedException模拟方法异常执行的方式
- Junit 实例精讲基础教程(一) 使用@Ignore注解跳过单元测试方法的执行
- Junit 实例精讲基础教程(三) 使用@Test(timeout=5000)模拟超时进行单元测试
- 在Eclipse中使用JUnit进行 单元测试
- eclipse 中使用MyBitis 创建项目时候 使用junit 测试出现找不到sqlmapconfig的问题
- 在 Eclipse 中使用 JUnit(翻译)
- 在Eclipse中使用JUnit(翻译)
- 在Eclipse中使用JUnit
- 在Eclipse中使用JUnit进行单元测试
- 在Eclipse中使用JUnit进行单元测试
- 利用CVSNT在Eclipse中使用CVS--3.创建一个CVS实例
- 在Eclipse中使用JUnit
- 在Eclipse中使用JUnit
- 在Eclipse中使用JUnit(翻译)