wiki:WikiStart

Version 27 (modified by chenyang, 14 years ago) (diff)

--

欢迎访问JUnit新技术研究推广平台

新技术介绍

JUnit是一个回归测试框架(regression testing framework),能实现测试的自动化。
JUnit测试是程序员测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。JUnit 设计的非常小巧,但是功能却非常强大。它大大简化了开发人员执行单元测试的难度,特别是 JUnit 4 使用 Java 5 中的注解(annotation)使测试变得更加简单。这里说的是单元测试:属于软件工程里的白盒测试,也就是测试某个类的某个方法的功能。

团队组成

项目负责:李峰 项目成员:全体BBS成员

Trac 实例系统维护

陈阳

为什么要使用Junit进行单元测试

我们编写代码时,一定会反复调试保证它能够编译通过。如果是编译没有通过的代码,没有任何人会愿意交付给自己的老板。但代码通过编译,只是说明了它的语法正确;我们却无法保证它的语义也一定正确,没有任何人可以轻易承诺这段代码的行为一定是正确的。
幸运的是,单元测试会为我们的承诺做保证。编写单元测试就是用来验证这段代码的行为是否与我们期望的一致。有了单元测试,我们可以自信的交付自己的代码,而没有任何的后顾之忧。

单元测试四大优点

优点一

它是一种验证行为。

程序中的每一项功能都是测试来验证它的正确性。它为以后的开发提供支援。就算是开发后期,我们也可以轻松的增加功能或更改程序结构,而不用担心这个过程中会破坏重要的东西。而且它为代码的重构提供了保障。这样,我们就可以更自由的对程序进行改进。

优点二

它是一种设计行为。
编写单元测试将使我们从调用者观察、思考。特别是先写测试(test-first),迫使我们把程序设计成易于调用和可测试的,即迫使我们解除软件中的耦合。

优点三

它是一种编写文档的行为
单元测试是一种无价的文档,它是展示函数或类如何使用的最佳文档。这份文档是可编译、可运行的,并且它保持最新,永远与代码同步。

优点四

它具有回归性
自动化的单元测试避免了代码出现回归,编写完成之后,可以随时随地的快速运行测试

试点应用项目

新游戏大厅

新游戏大厅除部分太平洋公共系统代码,如passport,rClient,authentication,以及jsp,js外,其余代码均使用Junit进行测试。

测试技术

Junit4 + Spring 测试框架 + JMock

为什么选择Junit4

Junit4相通对于junit3有以下几个特点.

1,Junit4不用去继承TestCase
2.Junit4增加Annotation注解,简化单元测试的编写
3,测试的方法名可以随便起,但最好沿用Junit3风格.用testXXX().这样能见名知意.
4,对异常处理方面有了较大改进,如:@Test(expected = Exception.class)通过expected参数大大简化了处理
5,新增@BeforeClass注解和@AfterClass注解,全局只执行一次.这是以前版本没有的功能.
6,@Before注解和@After 注解在每个测试方法前后执行一次.
7.在Junit4中,套件语义被两个新注释所替代。@RunWith和@SuiteClasses?

为什么选择Spring 测试框架

1,可以测试基于Spring的应用,通过配置文件和注解自动组装需要的单元测试对象。
2,提供了一些常用的J2EE Mock对象,比如HttpSession的Mock类等
3,可以支持数据库自动回滚,以防止对数据库的单元测试(插入,删除等)不可重复执行,防止修改数据库状态等。

为什么选择jMock

jMock 用法简单,易于掌握。利用它,我们可以很容易地快速构造出所需的Mock对象,从而得以方便快捷地编写单元测试代码,如太平洋网络项目中大量依赖的Env对象,可以通过jMock模拟

新游戏大厅单元测试应用

 单元测试应用示例——测试domain层对象

 单元测试应用示例——测试DAO层对象

 单元测试应用示例——测试Service层对象

 单元测试应用示例——测试工具类

 单元测试应用示例——测试Servlet类

 单元测试应用示例——测试Filter

 单元测试应用示例——测试标签库

 单元测试应用示例——用XML代替数据库数据

jWebUnit测试页面

jWebUnit是以HttpUnitJUnit 单元测试框架为基础,用于为Web应用程序开发测试用例,对 Web应用程序自动进行测试意味着跳过Web浏览器,通过程序来处理Web站点。jWebUnit提供了导航Web应用程序的高级API,并组合了一组断言,用它们来验证url、页面文本、按钮、表单项、cookie等页面元素。可以简单快捷的实现页面级自动化测试用例。
 单元测试应用示例 ——测试passport升级部分代码

Attachments