动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息

本月文章推荐
.Java应用热遍全球.
.选取合适的dHtml Grid方案.
.怎 样 在 APPLET 中 发 EMAIL.
.花1K内存实现高效I/O的RandomAcc.
.JDBC 概述(七).
.在J2me游戏使用“精灵”-Sprite.
.按要求进行决定是否有状态的EJB(.
.J2ME 3D技术简介.
.Java核心代码例程之:Properties.
.使用Decorator模式实现日期选择组.
.NEGATIVE_INFINITY 属性.
.robbin的HttpSession总结.
.在CMPP2.0 协议SP端的.NET开发.
.精通语言不等于是一个好的软件开.
.java中的对象引用问题的再次理解.
.Java实现数据排序算法.
.软件架构:可控的灵活性.
.Beans入门必读之为Beans增加功能.
.区分引用类型和原始类型.
.Java Development Kit (JDK) 7 B.

全面认识JUnit 4的新特征

发表日期:2008-1-5 |


提要 本文将向你介绍如何实现从JUnit 3.8向JUnit 4的迁移。同时,还讨论JUnit 4中的一些新特征,非凡包括对注解的使用;最后,简要介绍这个新版本的IDE集成现状。

  一、 引言

  在本文开始,我将假定,你已经了解由Kent Beck和Erich Gamma发明的这个Java单元测试框架并因此而略过必要的简介。所以,我将集中分析从JUnit 3.8到最新版本-JUnit 4的迁移过程以及其在IDE和Ant中的集成。

  JUnit 4是一种与其之前的版本完全不同的API,它根据Java 5.0中的新特征(注解,静态导入等)构建而成。如你所见,JUnit 4更简单、更丰富和更易于使用,而且它引入了更为灵活的初始化和清理工作,还有限时的和参数化测试用例。

  代码实例最能说明问题。因此,在本文中,我将使用一个例子来展示不同的测试用例:一个计算器。该示例计算器很简单,效率并不高,甚至还有一些错误;它仅仅操作整数,并且把结果存储在一个静态变量中。Substract方法并不返回一个有效的结果,而且也没有实现乘法运算,而且看上去在squareRoot方法中还存在一个错误:无限循环。这些错误将帮助说明使用JUnit 4进行测试的有效性。你可以打开和关闭这个计算器,而且你可以清除这些结果。下面是其实现代码:

package calc;
public class Calculator {
 private static int result; //存储结果的静态变量
 public void add(int n) {
  result = result + n;
 }
 public void substract(int n) {
  result = result - 1; //错误:应该是"result = result - n"
 }
 public void multiply(int n) {} //还没实现
 public void divide(int n) {
  result = result / n;
 }
 public void square(int n) {
  result = n * n;
 }
 public void squareRoot(int n) {
  for (; ;) ; //错误:无限循环
 }
 public void clear() { //清除结果
  result = 0;
 }
 public void switchOn() { //打开屏幕,显示"hello",并报警
  result = 0; //实现其它的计算器功能
 }
 public void switchOff() { } //显示"bye bye",报警,并关闭屏幕
 public int getResult() {
  return result;
 }
}
  二、 迁移一个测试类

  现在,我将把一个已经使用JUnit 3.8编写成的简单的测试类迁移到JUnit 4。这个类有一些缺陷:它没有测试所有的业务方法,而且看上去在testDivide方法中还存在一个错误(8/2不等于5)。因为还没有实现乘法运算功能,所以对其测试将被忽略。

  下面,我们把两个版本的框架之间的差别以粗体显示出现于表格1中。

  表格1.分别以JUnit 3.8和JUnit 4实现的CaculatorTest。

  JUnit 3.8

package junit3;
import calc.Calculator;
import junit.framework.TestCase;
public class CalculatorTest extends TestCase {
 private static Calculator calculator = new Calculator();
 @Override protected void setUp() { calculator.clear(); }
 public void testAdd() {
  calculator.add(1);
  calculator.add(1);
  assertEquals(calculator.getResult(), 2);
 }
 public void testSuBTract() {
  calculator.add(10);
  calculator.subtract(2);
  assertEquals(calculator.getResult(), 8);
 }
 public void testDivide() {
  calculator.add(8);
  calculator.divide(2);
  assert calculator.getResult() == 5;
 }
 public void testDivideByZero() {
  try {
   calculator.divide(0);
   fail();
  }
  catch (ArithmeticException e) { }
 }
 public void notReadyYetTestMultiply() {
  calculator.add(10);
  calculator.multiply(10);
  assertEquals(calculator.getResult(), 100);
 }
}
  JUnit 4


上一篇:简单的java访问共享文件 人气:694
下一篇:简易加法计算器 人气:1000
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-10 企业网站智能管理系统(TZIMS) v6
2008-10-10 拓文asp.net网站内容管理系统 v6
2008-10-10 动网论坛PHP版 v2.0++ Build 081
2008-10-10 免费时代CMS v5.0
2008-10-10 wodig第四季中文DIGG社区 v4.1 b
2008-10-10 老Y文章管理系统 v2.2 bulid 081
2008-10-10 魔法盒动感相册 ASP+SQL版 v2.0
2008-10-10 Asoft签到管理系统 v3.0 Pack1
2008-10-10 哥特人音乐网潮流留言本 v1.1
2008-9-29 酷狗音乐(原KuGoo)2008 v5.310 正
2008-9-29 QQTab 1.1
2008-9-29 网络传送带 Net Transport 2.64a
2008-9-29 谷歌金山词霸v1.8
2008-9-29 TweakVI 1.0 Build 1090
2008-9-29 ACDSee Pro 2.5 Build 333 汉化绿
2008-9-29 Winamp v5.541(2189) 周明波简体
2008-9-27 CCleaner 2.12.651
2008-9-27 Mozilla Thunderbird 2.0.0.17 英
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号