`
shunzheheliu
  • 浏览: 8268 次
  • 性别: Icon_minigender_1
  • 来自: 济南
最近访客 更多访客>>
社区版块
存档分类
最新评论
阅读更多
最近复习java基础以及流行框架,偶然看到教hibernate视频作者使用junit作为hibernate的验证平台,那种感觉让我找到沉寂了好长时间的编程快感,于是顺带着先把jUnit学习了下。

介绍下jUnit,java平台之所以到今天依然如此流行,很大程度上得益于其开源的态度,struts,hibernate,spring,

Apache common library,log4j,jUnit....举不胜举啊,最关键的是这些开源的框架、程序不仅使我们的编程效率大大的提高,更因为他们是编程大师们写的,其稳定性和运行效率也是杠杠滴。junit就是由Erich Gamma 和Kent Beck 两个大师级人物写的,这两个人我想就不用我多说了,Erich Gamma是GoF成员,GoF四个人写的《design patterns》可是很多很多优秀的程序员都要顶礼膜拜的,另一个Kent Beck是极限编程(XP)的发起人,也同样了不得哦。XP的原则之一------测试驱动开发(TDD),所使用的呢就是xUnit了,而jUnit基本就是其中的老大。

好了,现在说下jUnit的使用方法
最好有个eclipse,因为eclipse集成的jUnit用起来非常的舒心


jUnit3.*使用起来相当简单,只需新建一个类继承junit.framework.TestCase即可,TestCase里提供了很多实用的断言方法,测试方法约定以test开头后接要测试的方法,此method无参数无返回值,类名则最好是要测试的类名加Test后缀,比如要测试org.shun.UserManager类下的addUser(User)方法,可以写个UserManagerTest extends TestCase,然后写个测试方法testAddUser()即可
而4.*版本因为利用了J2SE 5.0提供的元数据注释特性,使得测试类可以不用继承TestCase

,只需把@Test加到相应的测试方法即可,因为没有继承TestCase,测试类本身没有了断言方法,怎么办呢?这要利用J2SE的另外一个特性,静态方法导入

可以这样import static org.junit.Assert.*;这样,那些断言方法就可以直接使用了

// jUnit 3.*版本

package org.shun.test;

import org.shun.UserManager;
import junit.framework.TestCase;

public class UserManagerTest extends TestCase {

   public void setUp() throws Exception {
      // TODO 这里提供供测试方法使用的全局变量初始化
   }

   public void tearDown() throws Exception {
      // TODO 这里提供全局变量的垃圾回收
   }

   public void testAddUser() {
      // TODO
   }

}



// jUnit 4.*版本

package org.shun.test;

import org.shun.UserManager;

import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.After;
import org.junit.BeforeClass;
import org.junit.AfterClass;
import org.junit.Test;

public class UserManagerTest extends TestCase {

   @Before
   public void setUp() throws Exception {
      // TODO 全局变量初始化,会为每个测试方法初始化一次
   }

   @After
   public void tearDown() throws Exception {
      // TODO 这里提供全局变量的垃圾回收,会为每个测试方法回收一次
   }

   @BeforeClass
   public static void initClass throws Exception {
      // TODO 全局变量初始化,只初始化一次
   }

   @AfterClass
   public static void disposeClass throws Exception {
      // TODO 全局变量回收,只回收一次
   }

   @Test
   public void testAddUser() {
      // TODO 测试方法
   }

}



大家不妨想想,如果测试自己写的一个类,怎么测试,写个测试方法,在main方法里初始化,然后运行测试方法或者直接就在main方法里写测试,有的人说这样也挺好呀,方便,还不引入第三方的库增加学习的复杂性,这里就说下junit提供的方便,看到上面代码没,首先人家提供了setup,teardown两个初始化和垃圾回收的方法,然后,里面写的每一个方法,都可以以junit方式运行,反应到eclipse里就是



这是运行测试类,这样里面的所有测试方法都会运行

当然你也可以选中某个测试方法来运行junit test,这样只会运行选中的测试方法,怎么样啊,就这一点使用它就理由充分了吧,最最重要的是人家提供了只有你想不到没有人家做不到的断言方法,哈哈

我这里只是简单介绍了junit的基础,另外像异常测试啦,设置timeout啦,以及派生自junit或者与junit无缝集成的其他工具啦都没有介绍,建议大家下载junit后自己去学习文档,或者来给我要视频教程,我非常乐意

最近学习的感悟就是不管学习什么东西,实践是很重要的,任何东西只有理论基础而没有实践,对个人而言其实就相当于没学,两三天过后就忘干净了,希望我也能多多实践,尽快成为编程高手
分享到:
评论

相关推荐

    JUnit4初体验

    《JUnit4初体验》 JUnit4是Java编程语言中广泛使用的单元测试框架,它极大地简化了测试代码的编写,使得开发者能够更加专注于功能实现,同时确保代码的质量。本篇文章将带你初探JUnit4的魅力,了解其核心概念和使用...

    单元测试利器JUnit4

    本文内容包括:引言JUnit4初体验JUnit深入JUnit和Ant总结本文主要介绍了如何使用JUnit4提供的各种功能开展有效的单元测试,并通过一个实例演示了如何使用Ant执行自动化的单元测试。本文假设读者对Eclipse下进行Java...

    Easyb初体验

    【标题】:“Easyb初体验” 在IT行业中,我们经常需要进行各种自动化测试,以确保软件的质量和稳定性。Easyb就是这样一款工具,它为Java应用程序提供了简洁、易读的BDD(行为驱动开发)风格的测试框架。这篇博客将...

    URLClassLoader初体验

    这篇博客文章“URLClassLoader初体验”可能深入探讨了如何使用`URLClassLoader`来动态加载类和资源,以及它在实际开发中的应用。下面我们将详细探讨`URLClassLoader`的相关知识点。 首先,`URLClassLoader`是Java...

    Hibernate1

    对 Hibernate 初体验 1.新建一个java工程,工程名为Hiberante1 2.导入相应的jar包 1)hibernate需要导入这些包 2)因为我们需要操作数据库所以要导入数据库的包,我用的mysql数据库 3.创建数据库以及表 ...

    Dagger2 Demo

    在"Dagger2 初体验.md"这个文件中,我们可能会找到以下关键概念和步骤: 1. **组件(Component)**:组件是Dagger2的核心,它定义了依赖关系的接口。通过`@Component`注解,我们可以声明所需的模块(Module)以及...

    (picture)相册管理

    对于初入编程领域的人士来说,这是一个理想的参考资料,可以从中学习到如何构建一个功能完备的相册管理系统。 【描述】:这个相册系统包含了从数据存储、图像处理到用户交互等多个方面的编程知识。通过分析和理解...

    软件测试宝典软件测试

    《软件测试宝典》可能涵盖自动化测试工具,如Selenium、Junit、Appium等的使用,以及如何编写测试脚本和实现持续集成。 最后,测试管理与文档也是软件测试中不可或缺的一环。有效的缺陷管理、测试报告编写以及测试...

    软件测试 教程 经典 入门 提高

    在信息技术领域,软件测试是一项至关重要的环节,它确保了产品的质量和用户体验。这个“软件测试教程”旨在为初学者提供一个全面的入门平台,并帮助有经验的测试人员进一步提升技能。本文将深入探讨软件测试的基础...

    测试基础笔记

    达内科技的测试基础笔记为初入行业的测试人员提供了丰富的学习资源,旨在帮助他们掌握基本的测试理论和实践技能。下面我们将深入探讨一些核心的测试知识点。 一、测试目标与原则 1. 测试的目标是为了发现软件中的...

    wordpress for android源码

    WordPress for Android源码基于Android 4.0(Ice Cream Sandwich)进行开发,这表明项目在设计之初就考虑到了兼容性和性能优化。源码主要分为以下几个关键模块: 1. 数据访问层:这部分代码处理与WordPress REST ...

    大型企业级项目毕业设计

    在“大型企业级项目毕业设计”中,我们可以深入探讨企业级项目开发的多个关键知识点,这些知识对于即将毕业的学生和初入职场的开发者来说极为重要。这个毕业设计项目显然是一个耗时半年的心血结晶,旨在为学习者提供...

    IT项目步骤

    架构设计决定了系统的整体结构,界面设计关乎用户体验,而数据库设计则保证数据的有效存储和检索。在这个阶段,程序员可能会使用Word创建概念数据模型和逻辑数据模型。 4. **编码(Coding)** 编码是将设计转化为...

    Bug奋斗史汇总

    它指的是软件中存在的错误、缺陷或不正常的行为,这些问题可能导致程序运行出错、功能失效或者用户体验下降。"Bug奋斗史汇总"这一标题揭示了我们将要探讨的是在软件开发过程中,如何识别、追踪、修复以及预防Bug的...

    新东方软件测试课件ppt

    测试的目的在于发现并修复程序中的错误,以提高软件的可靠性和用户体验。测试类型主要包括单元测试、集成测试、系统测试和验收测试,每个阶段都有其特定的目标和方法。测试流程则涵盖需求分析、测试计划、用例设计、...

    Android-Android开发框架ZLayerAndroid核心基础服务层

    为了保证代码质量,ZLayer可能包含了单元测试和集成测试的支持,开发者可以通过JUnit、Mockito等工具对各模块进行测试,确保功能的正确性。 ### 实战应用 在实际项目中,开发者可以根据需求选择ZLayer中的相应模块...

    测试新手学习宝典

    《测试新手学习宝典》是一本专为初入软件测试领域的学者量身打造的指南,旨在帮助新手系统地理解和掌握软件测试的基本概念、方法和技术。这份资料详尽地阐述了软件测试的重要性和必要性,以及如何从零开始构建测试...

    安卓手机开发,很不错的资源,值得拥有,下载了绝对不会后悔

    10. **Android测试**:单元测试、UI测试和性能测试是保证应用质量的重要环节,JUnit、Espresso和Robolectric等工具可以帮助开发者进行自动化测试。 11. **Android性能优化**:内存管理、电量优化、UI流畅度提升、...

Global site tag (gtag.js) - Google Analytics