首页 | 互联网 | IT动态 | Cisco | Windows | Linux | Java | .Net | Oracle | 华为 | 存储世界 | 服务器 | 网络设备 | IDC | 安全 | 求职招聘
IT培训 | 数字网校 | 技术专题 | 电子书下载 | 教学视频 | 网页设计 | 平面设计 | 解决方案 | 直播室 | 虚拟考场 | 搜索 | 博客 | 沙龙 | 论坛
中国IT实验室软件测试频道
IT教育热线
 
首页 资讯动态 测试技术 测试工具 行业软件测试 测试管理 测试下载 经验分享 软件质量 其他技术 RSS订阅 博客 论坛
您现在的位置: 中国IT实验室 >> 软件测试 >> 测试技术 >> 单元测试 >> 文章正文

NetBeans 5.0 单元测试实践

文章来源中国软件测试 作者佚名 更新时间2008-5-10 保存本文保存本文 推荐给好友推荐给好友 收藏本页收藏本页
  1 引言:

        任何一个程序员都知道单元测试的重要性,没有经过严格测试的模块是“靠不住”的,组装过程会出现越来越多的Bug,甚至到了客户那里都不能正常工作,这简直就是一场灾难。虽然每个程序员都深刻的知道这点,但是很多时候在进度的压力下,程序员不得不放弃部分甚至是全部的单元测试。特别是在我国现在的国情下,献礼项目太多,建设方的领导为了在某个“有意义”的日子里使项目上线,往往迫使软件开发方违背客观事实,在不可能的工期内完工。程序员作为项目的最底层人员,自然没有力量来进行反抗,当他们加班加点都无法在规定时间完成,于是放弃测试就成为了他们的唯一选择。

        很快这就成为一个恶性循环:压力越大,编写的测试越少。编写的测试越少,的效率越低,并且代码越不稳定。而效率越低并且越不精确,开发人员就感觉越有压力。

        程序员的精力就在这样的恶性循环中被耗费掉。想要打破它需要一种外界的影响。所谓的这种外界的影响,其实就是一个简单的测试框架,它可以让我们通过做很少的测试,来达到完整的测试,减少我们编写测试代码的时间。

    2 NetBeans 5.0对单元测试的支持

        NetBeans IDE 5.0 引入了对基于 NetBeans 平台的 IDE 模块和富客户端程序开发的全面支持,直观的全新 GUI Builder Matisse,经过重新设计的对 CVS 的新支持,对 Sun Application Server 8.2、Weblogic9 和 JBoss 4 的支持,以及很多的编辑器增强功能。同时集成了Java开发工具中应用最广泛的单元测试工具Junit,使得在NetBeans下进行单元测试变得简单容易,提高了程序员进行单元测试的积极性。

        可以使用 NetBeans IDE 创建以下类型的测试:

        空测试:没有测试方法的测试框架,尚未指定要测试的任何类。

    •现有类的测试:包含实际测试方法的类,这些方法镜像了要测试的源的结构。

    •测试套件:汇集在一起的几组测试类,允许对整个应用程序或项目进行测试。

        可以使用以下方法生成并找到测试:在“项目”窗口中选择任何类或包节点,然后从“工具”> "JUnit" 菜单中进行选择。NetBeans 将单元测试表示为子树,这些子树反映了项目的 Java 包结构。每个测试类都由它所测试的类的名称后Test 单词组成(如 MyClassTest.java)。
每个项目都有一个缺省的测试包,所有的测试文件都在测试包内被组织。程序文件与测试文件被分割成两个独立的部分,在项目下分为一个SRC文件夹和一个TEST文件夹,互相不产生影响,测试完成后,只需要将SRC文件夹单独移开,并不需要TEST文件夹的支持。包结构如下图:

        

3 被测试模块的编写

[NextPage]

        新建一个Java类库的项目,项目名称为:MoneyChange,新建包moneychange,在包中添加类Money.class。(为了阅读方便,下面代码中原来的注释已经被删除)
 package moneychange;

    public class Money {

        private int fAmount;
        private String fCurrency;
        public Money(int amount,String currency) {
           fAmount=amount;
           fCurrency=currency;
        }
        public int amount()
        {
           return fAmount;
        }
        public String currency()
        {
           return fCurrency;
        }
        public Money add(Money m)
        {
           return new Money(amount()+m.amount(),currency());
        }
        public boolean equals(Object anObject)
        {
           if(anObject instanceof Money)
           {
               Money aMoney=(Money)anObject;
               return aMoney.currency().equals(currency())
                   && amount()==aMoney.amount();
           }
        return false;
        }
    }

        该类有两个私有属性fAmount和fCurrency,构造函数在对类进行初始化的时候,对两个私有属性进行了赋值。Add方法对两个Money对象的现金(fAmount)进行相加,equals方法对两个Money对象的现金及货币单位进行比较是否相等。

     4 创建单元测试

        在项目窗口中的类Money.class上鼠标右键单击,在弹出的菜单中选择“工具”,并在子菜单中选择“创建Junit测试”,如下图所示:

            
           

【责编:Luzi】

中国IT教育

相关产品和培训
文章评论
 专题推荐

 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·企业网管如何部署你的网络监控系统?
 ·2008年软考官方指定教材及辅导书下载专题
 ·负载均衡技术方案攻略
 ·中国IT实验室2007年技术热点盘点
 ·利用路由实现VPN的配置方法
 ·JAVA开源技术介绍专题
 ·让你的局域网网速更上一层楼
 ·Linux Shell编程实用指南
 最近更新
 博客论点
 频道精选
 软件测试频道导航