单元测试基础 当今软件测试十分盛行时,本人通过项目实践和个人亲身体会浅谈单元测试,本人一直坚持“用代码说话的原则”,同时也希望个人能给出宝贵意见,共同探讨、共同进步,为中国软件事业有更大的发展共同奋斗!最早我们项目组开发的项目时,写代码都是从底层一直写到表现层到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
}