视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
在Eclipse中使用JUnit
2025-09-29 17:10:47 责编:小OO
文档
一、在Eclipse中使用JUnit

  测试对于保证软件开发质量有着非常重要的作用,单元测试更是必不可少,JUnit是一个非常强大的单元测试包,可以对一个/多个类的单个/多个方法测试,还可以将不同的TestCase组合成TestSuit,使测试任务自动化。Eclipse同样集成了JUnit,可以非常方便地编写TestCase。

  我们创建一个Java工程,添加一个example.Hello类,首先我们给Hello类添加一个abs()方法,作用是返回绝对值:

下一步,我们准备对这个方法进行测试,确保功能正常。选中Hello.java,右键点击,选择New->JUnit Test Case:

   Eclipse会询问是否添加junit.jar包,确定后新建一个HelloTest类,用来测试Hello类。

  选中setUp()和tearDown(),然后点击“Next”:

  

选择要测试的方法,我们选中abs(int)方法,完成后在HelloTest.java中输入:

    上图修改后的代码 : 

package example;

import junit.framework.TestCase;

public class HelloTest extends TestCase {

       Hello hello = new Hello();

    protected void setUp() throws Exception {

        super.setUp();

    }

    protected void tearDown() throws Exception {

        super.tearDown();

    }

    public void testAbs(){

           assertEquals(hello.abs(14),  14);

           assertEquals(hello.abs(-5),  5 );

           assertEquals(hello.abs(-0),  0);

        }

}

   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测试结果:

  绿色表示测试通过,只要有1个测试未通过,就会显示红色并列出未通过测试的方法。可以试图改变abs()的代码,故意返回错误的结果(比如return n+1;),然后再运行JUnit就会报告错误。

  如果没有JUnit面板,选择Window->Show View->Other,打开JUnit的View:

  JUnit通过单元测试,能在开发阶段就找出许多Bug,并且,多个Test Case可以组合成Test Suite,让整个测试自动完成,尤其适合于XP方法。每增加一个小的新功能或者对代码进行了小的修改,就立刻运行一遍Test Suite,确保新增和修改的代码不会破坏原有的功能,大大增强软件的可维护性,避免代码逐渐“腐烂”。

来源:http://www.yesky.com/SoftChannel/72342371961929728/20041201/1882557.shtml

二、Eclipse中JUnit的使用

1、新建一个测试用例,点击“File->New->Other…菜单项,在弹出的“New”对话框中选择”Java->JUnit”,下的TestCase 或TestSuite,就进入“New JUnit TestCase”对话框 

2、在“New JUnit TestCase”对话框填写相应的栏目,主要有Name(测试用例名),SuperClass(测试的超类一般是默认的junit.framework.TestCase),Class Under Test(被测试的类),Source Folder(测试用例保存的目录),Package(测试用例包名),及是否自动生成main,setUp,tearDown方法。 

3、如果点击下面的”Next>”按钮,你还可以直接勾选你想测试的被测试类的方法,Eclipse将自动生成与被选方法相应的测试方法,点击“Fishish”按钮后一个测试用例就创建好了。 

4、编写完成你的测试用例后,点击“Run”按钮就可以看到运行结果了。

JUnit的扩展应用

以下罗列了些JUnit的扩展应用: 

JUnit + HttpUnit=WEB功能测试工具 

JUnit + hansel =代码覆盖测试工具 

JUnit + abbot =界面自动回放测试工具 

JUnit + dbunit =数据库测试工具 

JUnit + junitperf=性能测试工具

一些使用JUnit经验

不要用TestCase的构造函数初始化,而要用setUp()和tearDown()方法。 

不要依赖或假定测试运行的顺序,因为JUnit利用Vector保存测试方法。所以不同的平台会按不同的顺序从Vector中取出测试方法。 

避免编写有副作用的TestCase。例如:如果随后的测试依赖于某些特定的交易数据,就不要提交交易数据。简单的回滚就可以了。 

当继承一个测试类时,记得调用父类的setUp()和tearDown()方法。 

将测试代码和工作代码放在一起,一边同步编译和更新。 

测试类和测试方法应该有一致的命名方案。如在工作类名前加上test从而形成测试类名。 

确保测试与时间无关,不要依赖使用过期的数据进行测试。导致在随后的维护过程中很难重现测试。 

如果你编写的软件面向国际市场,编写测试时要考虑国际化的因素。不要仅用母语的Locale进行测试。 

尽可能地利用JUnit提供地assert/fail方法以及异常处理的方法,可以使代码更为简洁。 

测试要尽可能地小,执行速度快。

三、junit常用的核心类(这些类都在包Junit.framework.*下):

(1)、TestCase(测试用例)-----扩展了Junit的TestCase类的类。它以testxxx方法的形式包含一个或多个测试,一个testcase把具有公共行为的测试归入一组。

(2)、TestSuite(测试集合)-----组测试,一个test suite是把多个相关测试归入一组的便捷方式。

(3)、TestRunner(测试运行器)-----执行test suite的程序。JUnit提供了几个test runner,junit.swingui.TestRunner,junit.awtui.TestRunner,junit.textui.TestRunner,你可以用他们来执行你的测试。

(4)、Assert:当条件成立时assert方法保持沉默,但条件不成立就抛出异常

(5)、TestResult:TestResult包含了测试中发生的所有错误或者失败

(6)、Test:可以运行Test并把结果传递给TestResult

(7)、TestListener:测试中若产生事件(开始,结束,错误,失败)会通知TestListener

四、Junit学习 http://hedong.3322.org/archives/000224.html (文章不错)

参考:http://blog.csdn.net/ai92/archive/2005/02/26/302844.aspx下载本文

显示全文
专题