`
sineat
  • 浏览: 20286 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

JUNIT简单实例及模板

阅读更多

关键词:JUNIT
环境:windows2000,Eclipse3.1,JDK1.4
        开发过程中进行单元测试,尽可能尽早的将BUG找出,是开发者应该做的。JUNIT为JAVA开发者提供了一个很好的测试机制,以下是一个简单的JUNIT应用实例,也是初学可供参考的JUNIT模板。

java 代码

  1. package junit.sineat.templet;   
  2. import java.util.Hashtable;   
  3. import junit.framework.Assert;   
  4. import junit.framework.TestCase;   
  5. import junit.framework.TestSuite;   
  6.   
  7. public class JunitB extends TestCase{   
  8.     /**定义你需要测试的类及用到的变量*****************************/  
  9.     public Hashtable hasha=null;//   
  10.     public Hashtable hashb=null;   
  11.     /*******************************************************/      
  12.     public JunitB(String name){        
  13.         super(name);//创建子类         
  14.     }   
  15.     /**用setUp进行初始化操作*/  
  16.     protected void setUp() throws Exception {   
  17.         super.setUp();   
  18.         hasha =new Hashtable();//这里    
  19.     }   
  20.     /**用tearDown来销毁所占用的资源*/  
  21.     protected void tearDown() throws Exception {   
  22.         super.tearDown();   
  23.         //System.gc();   
  24.     }   
  25.     /**写一个测试方法断言期望的结果**/  
  26.     public void testBodyStatus() {     
  27.         //hasha =new Hashtable();//有此句后也可去掉setUp() tearDown()   
  28.         assertNotNull(hasha);          
  29.         //hasha.put("0","let's try again");//test1.error版   
  30.         assertTrue(hasha.isEmpty());//期望为空         
  31.     }   
  32.     /**再写一个测试方法断言期望的结果**/  
  33.     public void testBodySame() {           
  34.         //hashb=(Hashtable)hasha.clone();   //test2.error版   
  35.         hashb=hasha;                        //test2.OK 版   
  36.         Assert.assertSame(hasha,hashb);        
  37.     }   
  38.     /**suite()方法,使用反射动态的创建一个包含所有的testXxxx方法的测试套件**/  
  39.     public static TestSuite suite()  {   
  40.         return new TestSuite(JunitB.class);   
  41.     }   
  42.     /****写一个main()运行测试*****************/  
  43.     public static void main(String args[]) {   
  44.         junit.textui.TestRunner.run(suite());//以文本运行器的方式方便的        
  45.         //junit.swingui.TestRunner.run(JunitB.class);   
  46.     }   
  47. }   

        以上为JUNIT的简单测试样例,不需过多考虑性能及规范,但资深JAVA开发者建议:
一、不要在测试用例的构造函数中做初始化
    答案是重载测试用例的setUp()方法进行初始化。
二、不要假定测试用例中测试的执行次序
    好的习惯是保持测试之间的独立性,使得它们在任何次序下执行的结果都是相同的。
三、测试要避免人工干预
    经验二讲的是不同的测试要避免相关性,而经验三讲的其实就是测试要避免自相关。
四、在子类中调用父类的setUp() 和tearDown()
五、不要硬性规定数据文件的路径
六、把测试的代码和被测的代码放在同样的目录下
七、正确命名测试
八、书写测试时要考虑地区和国家设置
九、利用Junit 的自动异常处理书写简洁的测试代码
     事实上在Junit 中使用try-catch 来捕获异常是没有必要的,Junit 会自动捕获异常。那些没有被捕获的异常就被当成错误处理。
十、充分利用Junit 的assert/fail 方法
     assertSame()用来测试两个引用是否指向同一个对象
     assertEquals()用来测试两个对象是否相等
十一、确保测试代码与时间无关
十二、使用文档生成器做测试文档。
    以上资料来自:“JUnit使用经验”,原作:Andy Schneider Richard Dallaway 等,编译:PMT 测试工作组。

分享到:
评论

相关推荐

    Junit单元测试的实验报告.docx

    简单介绍了Junit的安装过程与实例应用。应用的问题是软件测试中的佣兵问题,整个文档中有代码及测试结果,可以更好地帮助学生了解Junit单元测试中的作用。

    hibernate+spring+junit+ant+mysql

    hibernate+spring+junit+ant+mysql 小实例。能够当模板

    xalanjava源码-Eclipse-Preferences:EclipseIDE的各种首选项

    模板 使用Preferences > Java > Editor > Templates > Import...将这些模板添加到您的 Eclipse 环境中 JUnit 模板 aaa :声明一个带有三 A 注释的 JUnit 4 测试方法:Arrange、Act 和 Assert。 at :插入assertThat...

    Spring.3.x企业应用开发实战(完整版).part2

    3.2.1 简单实例 3.2.2 类装载器ClassLoader 3.2.3 Java反射机制 3.3 资源访问利器 3.3.1 资源抽象接口 3.3.2 资源加载 3.4 BeanFactory和ApplicationContext 3.4.1 BeanFactory介绍 3.4.2 ApplicationContext介绍 ...

    Spring3.x企业应用开发实战(完整版) part1

    3.2.1 简单实例 3.2.2 类装载器ClassLoader 3.2.3 Java反射机制 3.3 资源访问利器 3.3.1 资源抽象接口 3.3.2 资源加载 3.4 BeanFactory和ApplicationContext 3.4.1 BeanFactory介绍 3.4.2 ApplicationContext介绍 ...

    express-mongoose-template:具有express,mongoose和TypeScript的模板Node.js项目

    表达猫鼬模板 快速开始 开始开发... 您需要首先创建一个.env文件并配置数据库,然后设置数据库并开始开发/测试。 # install deps yarn install # run in development mode yarn dev # run tests yarn test # check...

    JAVA程序开发大全---上半部分

    本书内容精练、重点突出、实例丰富,是Java程序开发人员必备的参考书,同时也可作为高等院校计算机及相关专业的教材。 图书目录 第1章 初识MyEclipse 1 1.1 MyEclipse简介 1 1.2 MyEclipse的安装 1 1.2.1 JDK的...

    Spring+3.x企业应用开发实战光盘源码(全)

     第2章:通过一个简单的例子展现开发Spring Web应用的整体过程,通过这个实例,读者可以快速跨入Spring Web应用的世界。  第3章:讲解Spring IoC容器的知识,通过具体的实例详细地讲解IoC概念。同时,对Spring框架...

    Web编程示例:使用Java和Angular等技术的Web应用程序示例

    网络编程实例 该项目包含在服务器端使用Java的Web应用程序的代码示例。技术清单这些示例涉及的主要技术是: Spring:Java框架。 这些示例基于Spring Boot,Spring MVC,Spring Data,Spring Security和Spring Test。...

    陈开雄 Spring+3.x企业应用开发实战光盘源码.zip

     第2章:通过一个简单的例子展现开发Spring Web应用的整体过程,通过这个实例,读者可以快速跨入Spring Web应用的世界。  第3章:讲解Spring IoC容器的知识,通过具体的实例详细地讲解IoC概念。同时,对Spring...

    aoc-kotlin-2019:使用Kotlin重新访问2019年AoC

    解决入门模板 特征 Gradle设置,因此您可以在命令行上运行特定的一天或全天(请参阅下面的“运行” ) 每天每一部分的时间 每天自动以“字符串和列表”形式显示的输入 包括Junit和Hamcrest测试库(请参见下面的测试...

    wicket-gae-template:Google App Engine 的示例 WicketGuice 应用程序

    该项目提供了一个模板来帮助您开始为构建应用。 它是对 App Engine 描述的留言板应用程序的重新实现。 本教程使用原始 servlet 和 JSP 来演示 App Engine 的一些基本功能,而该项目使用 Wicket 作为 Web 框架。 ...

    Spring攻略(第二版 中文高清版).part2

    13.1 用JUnit and TestNG创建测试 504 13.1.1 问题 504 13.1.2 解决方案 504 13.1.3 工作原理 504 13.2 创建单元测试和集成测试 509 13.2.1 问题 509 13.2.2 解决方案 509 13.2.3 工作原理 510 13.3...

    Spring攻略(第二版 中文高清版).part1

    13.1 用JUnit and TestNG创建测试 504 13.1.1 问题 504 13.1.2 解决方案 504 13.1.3 工作原理 504 13.2 创建单元测试和集成测试 509 13.2.1 问题 509 13.2.2 解决方案 509 13.2.3 工作原理 510 13.3...

    spring3.2入门到大神(备java基础、jsp、servlet,javaee精髓)

    IoC思想、DI依赖注入、Bean的实例方式、Bean种类、Bean作用域范围、Bean生命周期管理、依赖注入、注解装配Bean、整合Junit测试、WEB开发集成spring、AOP思想、AOP原理解剖、spring 传统aop开发、JdbcTemplate模板...

    Spring中文帮助文档

    8.3.6. JUnit 3.8遗留支持 8.3.7. Spring TestContext Framework 8.3.8. PetClinic示例 8.4. 更多资源 II. 中间层数据访问 9. 事务管理 9.1. 简介 9.2. 动机 9.3. 关键抽象 9.4. 使用资源同步的事务 9.4.1...

    Spring API

    8.3.6. JUnit 3.8遗留支持 8.3.7. Spring TestContext Framework 8.3.8. PetClinic示例 8.4. 更多资源 II. 中间层数据访问 9. 事务管理 9.1. 简介 9.2. 动机 9.3. 关键抽象 9.4. 使用资源同步的事务 9.4.1...

    iuhyiuhkjh908u0980

    ant配置文件实例详解 build.xml 代码 xml version="1.0" encoding="UTF-8"?> <!-- name:对应工程的名字;default:需要的缺省任务(运行"ant"不指明任务时执行的任务) --> by duzn 2007-04-02 回复 (0) Antenna与j2me...

    一个java正则表达式工具类源代码.zip(内含Regexp.java文件)

    在这是junit测试单元类我就不提交了,在main()方法中有几个小测试,有兴趣自己玩吧. 这个工具类目前主要有25种正规表达式(有些不常用,但那时才仔细深入的研究了一下正规,写上瘾了,就当时能想到的都写了): 1....

Global site tag (gtag.js) - Google Analytics