IT产品热门报价
 手机 更多>>
 笔记本 更多>>
 数码产品 更多>>
 电脑硬件 更多>>
·注册淘宝会员购买便宜数码

·北京 ·上海 ·广州
·杭州 ·深圳 ·合肥
·天津 ·西安 ·宁波
·南京 ·重庆 ·南宁

IT热点
  • 电脑硬件
  • 手机
  • MP4
  • 品牌机
  • 办公产品
  • 投影机
  • 服务器
  • 奥林巴斯
  • 尼康
  • 佳能
  • 阿尔卡特
  • 索尼
  • 微星
  • 七彩虹
  • 笔记本
  • 数码相机
  • 数码摄像机
  • 惠普
  • 戴尔
  • 联想
  • 诺基亚
  • 摩托罗拉
  • 索尼爱立信
  • LG
  • 西门子
  • 飞利浦
  • 华硕
  • 硕泰克
  • 首页 >> 学院 >> 程序开发 >> 程序开发Java
    JUnit入门 [程序开发Java]
    javafan.com
    2006-1-4 9:30:00 文/
      一、简介

      JUnit是一个开源的java单元测试框架。在1997年,由 Erich Gamma 和 Kent Beck 开发完成。这两个牛人中 Erich Gamma 是 GOF 之一;Kent Beck 则在 XP 中有重要的贡献(你觉得眼熟一点都不奇怪)。
      正如常言道:“麻雀虽小,五脏俱全。” JUnit设计的非常小巧,但是功能却非常强大。
      下面是JUnit一些特性的总结:
      1) 提供的API可以让你写出测试结果明确的可重用单元测试用例
      2) 提供了三种方式来显示你的测试结果,而且还可以扩展
      3) 提供了单元测试用例成批运行的功能
      4) 超轻量级而且使用简单,没有商业性的欺骗和无用的向导
      5) 整个框架设计良好,易扩展
      对不同性质的被测对象,如Class,Jsp,Servlet,Ejb等,Junit有不同的使用技巧。由于本文的性质,以下仅以Class测试为例。

      二、下载

      点击http://www.junit.org可以下载到最新版本的JUnit,本文使用的为3.8.1版。至于安装或者配置之类,你只需要轻松的将下载下来的压缩包中的jar文件,放到你工程的classpath中就可以了。
      这样,你的系统中就可以使用JUnit编写单元测试代码了(是不是很简单)!

      三、HelloWorld

      记得在几乎每本语言教学书上都能找到HelloWorld这个入门代码。今天在这里,我们也从一个简单到根本不用单元测试的例子入手。这是一个只会做两数加减的超级简单的计算器(小学一年级必备极品)。代码如下:

      public class SampleCalculator
      {
       public int add(int augend , int addend)
       {
       return augend + addend ;
       }

       public int subtration(int minuend , int subtrahend)

       {

       return minuend - subtrahend ;

       }

      }

      将上面的代码编译通过。下面就是我为上面程序写的一个单元测试用例:

      //请注意这个程序里面类名和方法名的特征
      import junit.framework.TestCase;
      public class TestSample extends TestCase

      {

       public void testAdd()

       {

      SampleCalculator calculator = new SampleCalculator();

       int result = calculator.add(50 , 20);

       assertEquals(70 , result);

       }

       public void testSubtration()

       {

       SampleCalculator calculator = new SampleCalculator();

       int result = calculator.subtration(50 , 20);

       assertEquals(30 , result);

       }

      }

      好了,在DOS命令行里面输入javac TestSample.java 将测试类编译通过。然后再输入 java junit.swingui.TestRunner TestSample 运行测试类,你会看到如下的窗口。

      绿色说明单元测试通过,没有错误产生;如果是红色的,则就是说测试失败了。这样一个简单的单元测试就完成了.

      按照框架规定:编写的所有测试类,必须继承自junit.framework.TestCase类;里面的测试方法,命名应该以Test开头,必须是public void 而且不能有参数;而且为了测试查错方便,尽量一个TestXXX方法对一个功能单一的方法进行测试;使用assertEquals等junit.framework.TestCase中的断言方法来判断测试结果正确与否。

      你可以对比着上面测试类中的实现来体会下规定——很简单!而且你在这个测试类中有加入多少个测试方法,就会运行多少个测试方法。

      四、向前一步

      学完了HelloWorld,你已经可以编写标准的单元测试用例了。但是还有一些细节,这里还要说明一下。不要急,很快的!
      另外你是否注意到,上面弹出窗口的一个细节,在绿条下面有Errors、Failures统计。这两者有何区别呢?
      Failures作为单元测试所期望发生的错误,它预示你的代码有bug,不过也可能是你的单元测试代码有逻辑错误(注意是逻辑错误)。Errors不是你所期待的,发生了Error你可以按照下面的顺序来检查:

      检查测试所需的环境,如:数据库连接

      检查单元测试代码

      检查你的系统代码

      五、成批运行test case

      这是前面提到的JUnit特性之一。它方便于系统单元测试的成批运行。使用起来也是非常简单,先看下使用代码:

      import junit.framework.Test;

      import junit.framework.TestSuite;

      public class TestAll{

       public static Test suite(){

       TestSuite suite = new TestSuite("TestSuite Test");

       suite.addTestSuite( TestSample.class);

       return suite;

       }

      }

      这个测试程序的编译、运行,和上面TestSample的方式是一样的。

      javac TestAll.java

      java junit.swingui.TestRunner TestAll

      怎么样?这样你在suite方法里面添加几个TestCase就会运行几个,而且它也可以添加TestSuite来将小一点的集合加入大的集合中来,方便了对于不断增加的TestCase的管理和维护。

      你觉得suite方法的作用是不是于java应用程序的main很类似?并且这里的suite必须严格遵守上面的写法!

    ·IT产品报价大全
    更多相关: 手机
    在百度中更多内容: 手机



    ·论坛专业解答:编辑在线四点半
    ·别再上当了!揭穿八大手机陷阱
    ·CPU经常是100%工作是什么故障?
    ·办公话题:兼容耗材犯不犯法?
    ·两天前配电脑,JS黑了多少?
    ·买手机惨遭毒打?深圳暴力(图)
    ·PS高招:让模糊照片清亮起来
    ·隐私:华为员工待遇全面揭秘
    ·围观----到底是谁麻木了???
    ·心理战!二战德军的色情传单图
    ·国产美女,不看是人生一大遗憾
    ·IT人生存状态:我不是IT精英

    打印此页 投稿与建议 返回顶部

    相关文章