JUnit in java 真正的测试用例实战

单元测试基础
         当今软件测试十分盛行时,本人通过项目实践和个人亲身体会浅谈单元测试,本人一直坚持 用代码说话的原则 ,同时也希望个人能给出宝贵意见,共同探讨、共同进步,为中国软件事业有更大的发展共同奋斗!
最早我们项目组开发的项目时,写代码都是从底层一直写到表现层到 jsp ,然后开发人员在 web 层调试页面,近乎 98 %都会报一大堆 exception, 然后再在代码中加断点一步一步查到底哪一层代码出现问题 ……, 比较好点做法就是在各个类中加上 main 方法测试,但总体很不理想,给 web 层开发人员的调试和质量控制人员带来繁重的工作压力;使用单元测试后,针对每一个方法都做严格的把关,大大减少调试的时间;同时质量控制人员返回过来的 bug 少了近 60 %,现在对于开发人员写测试用例非常熟练,并且本人根据实际情况对测试用例做了点小小改动(这部分主要在后面代码中详述),带来很好的效果!
单元测试到底给实际开发带来什么好处那?
1            (1) 首先对于开发人员来说大大减少调试工作的时间,同时也规范了对于代码安全管理(我们知道那些方法是可以调用的);
2            (2) 对于整个项目来说,有了完整的测试,保证项目最后交付测试有了可靠依据;
3            (3) 对于测试人员大大减少 bug 的反馈;
4            (4) 对于项目经理整个项目达到很好的可控;
5           (5) 最主要的完整的单元测试给后期维护人员带来很大的便捷!
单元测试好处可能还有很多,但本人只能理解和感悟这么多 , 希望观者补充!
单元测试配置:
       我将使用 eclipse myEclopse 给大家介绍关于 JUNIT 的环境的简单配置;右键点击项目选择 属性 ,在弹出窗口中到环境变量中添加 junit.jar 包,这样下一步我们就可以进行单元测试了;
使用 eclipse 快速开发 test Case
如下图:右键选择你要测试的类,在新建中点击 “JUnit 测试用例
弹出对话框,配置测试名称和根目录,添加注释等,再点击 下一步 到下图:
      选择你要测试类中的方法,点击完成!便生成测试类的基本框架,如下代码,我们以对一个 DAO 类测试为例:
/**/ /*
 * Copyright reserved 2005 by XXXXCo. Ltd.
 * Author
Fu wei    Date 2006-9-4
 */



import  junit.framework.TestCase;

/** */ /**
 * 
@author  Fu wei
 */

public  class  OrgTypeDAOTest  extends  TestCase  ... {
    
/** */ /**
     * 
@param  arg0
     */

    
public  OrgTypeDAOTest(String arg0)  ... {
        
super (arg0);
    }

    
/**/ /* 
     * @see junit.framework.TestCase#setUp()
     */

    
protected  void  setUp()  throws  Exception  ... {
        
super .setUp();
    }

    
/**/ /* 
     * @see junit.framework.TestCase#tearDown()
     */

    
protected  void  tearDown()  throws  Exception  ... {
        
super .tearDown();
    }
    
/** */ /**
     *  
主函数
     * 
@param  args
     */

    
public  static  void  main(String[] args) ... {
        TestRunner.run(OrgTypeDAOTest .
class );
    }
    
/** */ /**
     * {
@link  OrgTypeDAO#getOrgTypeList()}  的测试方法。
     */

    
public  final  void  testGetOrgTypeList()  ... {
        fail("
尚未实现 ");  // TODO
    }

    
/** */ /**
     * {
@link  OrgTypeDAO#insertOrgTypeInfo(com.zhjy.mltx.vo.OrgTypeVO)}  的测试方法。
     */

    
public  final  void  testInsertOrgTypeInfo()  ... {
        fail("
尚未实现 ");  // TODO
    }

    
/** */ /**
     * {
@link  OrgTypeDAO#deleteOrgTypeInfo(java.lang.String)}  的测试方法。
     */

    
public  final  void  testDeleteOrgTypeInfo()  ... {
        fail("
尚未实现 ");  // TODO
    }

    
/** */ /**
     * {
@link  OrgTypeDAO#updateOrgTypeInfo(com.zhjy.mltx.vo.OrgTypeVO)}  的测试方法。
     */

    
public  final  void  testUpdateOrgTypeInfo()  ... {
        fail("
尚未实现 ");  // TODO
    }

    
/** */ /**
     * {
@link  OrgTypeDAO#getOrgTypeInfoById(java.lang.String)}  的测试方法。
     */

    
public  final  void  testGetOrgTypeInfoById()  ... {
        fail("
尚未实现 ");  // TODO
    }

    
/** */ /**
     * {
@link  OrgTypeDAO#isRepeatOrgTypeInfo(java.lang.String)}  的测试方法。
     */

    
public  final  void  testIsRepeatOrgTypeInfoString()  ... {
        fail("
尚未实现 ");  // TODO
    }

    
/** */ /**
     * {
@link  OrgTypeDAO#isRepeatOrgTypeInfo(com.zhjy.mltx.vo.OrgTypeVO)}  的测试方法。
     */

    
public  final  void  testIsRepeatOrgTypeInfoOrgTypeVO()  ... {
        fail("
尚未实现 ");  // TODO
    }

    
/** */ /**
     * {
@link  OrgTypeDAO#getFlatOrgIdByName(java.lang.String)}  的测试方法。
     */

    
public  final  void  testGetFlatOrgIdByName()  ... {
        fail("
尚未实现 ");  // TODO
    }
}
 
 JUnit 单元测试一共要注意一下几点:
1 import junit.framework.TestCase junit.textui.TestRunner
2 )继承 junit.framework.TestCase
3 )自行添加一个 main 方法      中调用 TestRunner.run( 测试类名 .class);
4 )有一个调用 super(String) 的构造函数;
        以上都是 JUnit 必有的特征,除以上外,我们发现有许多以 test 开头的方法,而这些方法正是我们要测试的方法, Junti 测试其实采用的是断言的方式,只要我们在所有 test 开头中的方法对数据添加断言方法,同时提供很多断言的方法,

 

常用断言方法
assertEquals(" 失败提示信息 "," 期望数据 "," 测试数据 ")
断言获取数据是否与所期望的相等
assertNotNull(" 失败提示信息 "," 测试数据 ")
断言获取数据不为 null ,否则提示错误
assertNull(" 失败提示信息 "," 测试数据 ")
断言获取数据是为 null ,否则提示错误
assertTrue(" 失败提示信息 ", 测试数据 blooean )
断言获取数据是否为 ture ,否则提示错误
fail(" 失败提示信息 ");
此方法一般放到异常处,遇到此方法,测试将停止 !
assertSame(" 失败提示信息 "," 期望数据 "," 测试数据 ")
断言获取数据是否与所期望的相同
当我们写完所有方法策略后, JUnit 测试如下图:
在方法页面中点击右键在 调试方式 运行方式 中点击 JUnit 测试 ,就运行测试类!
在执行测试类时,执行的大概过程
1 )先执行构造方法 public OrgTypeDAOTest(String arg0)
2 )再执行初始化数据方法 protected void setUp()
3 )再执行以 test 开头的测试方法;
4 )最后执行 protected void tearDown() 方法清理对象;
如果测试失败或者错误,将会显示一个红色的亮条;如果测试通过将显示绿色亮条;如下图
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章