JUnit三分钟教程 ---- 实际应用
摘自http://lavasoft.blog.51cto.com/62575/65775
 
接上文“JUnit三分钟教程 ---- 快速起步”,续写一篇,以便能真正将JUnit用到项目的测试中。
 
进行测试确不清理垃圾数据就像随地大小便一样让人无法忍受!
 
测试是应该进行,如果测试过程中给数据库中写入了垃圾数据怎么办,不用担心,JUnit的设计者早已考虑到了这个问题,下面看如何控制“测试垃圾”的回收。
 
结合Eclipse,这个实现非常的简单,80%的代码是Eclipse生成的,呵呵。
 
一、测试目标
 
private int a,b;
  
  
    public Calc() {

    }

    public int add() {
  return a + b;
    }

    public int getA() {
  return a;
    }

    public void setA(int a) {
  this.a = a;
    }

    public int getB() {
  return b;
    }

    public void setB(int b) {
  this.b = b;
    }
  
}
 
二、写测试用例
测试用例中的setup()方法会在测试逻辑最先调用。就相当于做初始化工作。
 
测试用例中的tearDown() 方法在测试逻辑之后调用。充当一个清理战场的角色,以清楚测试过程中对现场的状态的破坏。
 
 
public class CalcTest1 extends TestCase {
    Calc c=new Calc();

    protected void setUp() throws Exception {
  c.setA(2);
  c.setB(1);
  
    }

    protected void tearDown() throws Exception {
  c=null;
    }

    public void testAdd() {
  int result=c.add();  
  assertEquals(3,result,0);
//  fail("尚未实现"); // TODO
    }

}
 
public class CalcTest2 extends TestCase {
    Calc c=new Calc();

    protected void setUp() throws Exception {
  c.setA(2);
  c.setB(1);
  
    }

    protected void tearDown() throws Exception {
  c=null;
    }

    public void testAdd() {
  int result=c.add();  
  assertEquals(3,result,0);
//  fail("尚未实现"); // TODO
    }

}
 
本例中没有测试垃圾,因此tearDown() 实际上可以不用写。
 
三、生成测试单元
 
import junit.framework.TestSuite;

public class AllTests {

    public static Test suite() {
  TestSuite suite = new TestSuite("Test for default package");
  //$JUnit-BEGIN$
  suite.addTestSuite(CalcTest1.class);
  suite.addTestSuite(CalcTest2.class);
  //$JUnit-END$
  return suite;
    }

}
 
 
四、在Eclipse中执行单元测试
 
~~~周末愉快!!

JUnit三分钟教程 ---- 实际应用的更多相关文章

  1. JUnit三分钟教程 ---- 快速起步

    JUnit三分钟教程 ---- 快速起步 摘自http://lavasoft.blog.51cto.com/62575/65625/ JUnit是个好东西,做大点的项目离不开这东西,实际中用的时候也因 ...

  2. 【项目管理和构建】十分钟教程,eclipse配置maven + 创建maven项目(三)

    [项目管理和构建]十分钟教程,eclipse配置maven + 创建maven项目(三) 上篇博文中我们介绍了maven下载.安装和配置(二),这篇博文我们配置一下eclipse,将它和maven结合 ...

  3. Powershell极速教程-如何在三分钟内编写项目编译脚本

    分析及思路 来看一下项目目录结构 炒鸡正常的三板斧src+docs+tests.咦,怎么会多出一个build的文件夹呢,这就是我们今天要研究的目录.今天我会带着大家在五分钟之内编写一个极简的编译脚本. ...

  4. [转载]GDB十分钟教程

    转自:http://blog.csdn.net/liigo/article/details/582231/ GDB十分钟教程 作者: liigo原文链接: http://blog.csdn.net/l ...

  5. GDB十几分钟教程

    GDB十分钟教程 作者: liigo原文链接: http://blog.csdn.net/liigo/archive/2006/01/17/582231.aspx日期: 2006年1月16日 本文写给 ...

  6. windows+mysql集群搭建-三分钟搞定集群

    注:本文来源:  陈晓婵   <  windows+mysql集群搭建-三分钟搞定集群   > 一:mysql集群搭建教程-基础篇 计算机一级考试系统要用集群,目标是把集群搭建起来,保证一 ...

  7. Org-mode五分钟教程ZZZ

    Table of Contents 1 源起 2 简介 2.1 获取 org-mode 2.2 安装 3 基础用法 3.1 创建一个新文件 3.2 简单的任务列表 3.3 使用标题组织一篇文章 3.4 ...

  8. x01.TextProc: 两三分钟完成的一个小工具

    在工作中,遇到这么个问题,需要将 Excel 表中类似 2134-1234-4456 的商品编号输入到单位的程序中,而程序只认 213412344456 这种没有 ‘-’ 的输入.数量比较多,一笔一笔 ...

  9. unity3d 三分钟实现简单的赛车漂移

    提到赛车游戏,大家最关心的应该就是漂移吧?! 从学unity开始,我就一直在断断续续的研究赛车 因为自己技术太烂.悟性太差等原因,我走了不少弯路 也许你会说,网上那么多资料,你不会查啊 是啊!网上一搜 ...

随机推荐

  1. phpcms:七、list.html

    1.列表页{pc:content action="lists" catid="$catid" num="25" order="id ...

  2. 使用教程 - BestSync同步软件 - SQL2008R2 数据库定时备份解决方案

    需求: 1.      某公司的管理软件,数据库为SQL2008R2.2.      将整个数据库作为一个文件,定时同步到FTP 服务器3.      需要有多个备份,每同步一次,都备份上次的文件到备 ...

  3. zoj 3706 Break Standard Weight(dp)

    Break Standard Weight Time Limit: 2 Seconds                                     Memory Limit: 65536 ...

  4. [Redux] Redux: Extracting Container Components -- AddTodo

    Code to be refactored: const AddTodo = ({ onAddClick }) => { let input; return ( <div> < ...

  5. android_launcher的源码详细分析

    转载请注明出处:http://blog.csdn.net/fzh0803/archive/2011/03/26/6279995.aspx 去年做了launcher相关的工作,看了很长时间.很多人都在修 ...

  6. Sybase安装后的配置工作

    1.配置数据库参数 配置sybase数据库使用的最大内存 用isql命令行实用工具登录sybase数据库服务器,其中的servername是$SYBASE/interfaces文件中配置的sybase ...

  7. 使用Xcode和Instruments调试解决iOS内存泄露【转】

    转载自:http://blog.csdn.net/totogo2010/article/details/8233565 虽然iOS 5.0版本之后加入了ARC机制,由于相互引用关系比较复杂时,内存泄露 ...

  8. SVG 路径(path)

    本文转自:https://developer.mozilla.org/zh-CN/docs/Web/SVG/Tutorial/Paths <path>元素是SVG基本形状中最强大的一个,它 ...

  9. SqlDbType与DbType这间的转换关系

    SqlDbType => DbType SqlDbType.BigInt DbType.Int64 SqlDbType.Binary DbType.Binary SqlDbType.Bit Db ...

  10. AngularJs练习Demo10 ngInclude

    @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport&quo ...