JBuilder2005单元测试之JUnit框架

女王范60

女王范60

2016-01-29 12:51

JBuilder2005单元测试之JUnit框架,JBuilder2005单元测试之JUnit框架
  简单的框架

  JUnit是由Erich Gamma和Kent Beck开发的开源测试框架,JBuilder集成了这个框架并对此做了扩展。JUnit之所以流行并为广大的开发人员所推崇,一是因为它实战性强,功能强大,二是因为它实在简单。一个产品或框架要能有生命力,最好都具备这样的特点。

  简单地讲这个框架提供了许多断言(assert)方法,允许你设置测试的规则,如:assertEquals()、assertNull()、assertNotSame()、assertTrue()等方法,一个测试用例包括了多个断言,当运行测试用例后,JUnit运行器会报告哪些断言没有通过,开发人员就可顺藤摸瓜搞个水落石出了。而传统的测试方法需要将期望的结果用诸如System.out.println()等语句将过程信息打印到控制台或日志中,由开发人员观察输出信息以判断是否正确,现在这种"观察"的工作由JUnit的那些assertXxx()方法自动完成。

  JUnit的测试框架类结构很简单,主要由3个类组成,其类图关系如下图所示:


  图 错误!文档中没有指定样式的文字。JUnit测试框架类结构

  ·junit.framework.Test:测试接口。

  ·junit.framework.TestCase:测试用例类,业务类的测试用例类只需要承继这个TestCase,根据情况编写若干个public void testXxx()方法,在方法中通过assertYyy()定制若干测试规则就可以了。

  ·junit.framework.TestSuite:测试套件类,它可以将多个测试用例类捆绑在一起运行,也可以捆绑另一个测试套件。
  测试固件(Fixture)

  一个测试用例可以包含若干个testXxx()测试方法,测试用例测试一个或多个类API接口的正确性,当然在调用类API时,需要事先创建这个类的对象及一些关联的对象,这组对象就称为测试固件(Fixture),相当于测试用例的"工作对象"。

  我们在前面说过,一个测试用例类可以包含多个testXxx()方法,在运行时,每个测试方法都对应一个测试用例类的实例。当然,你可以在具体的testXxx()方法里声明并实例化业务类的实例,在测试完成后再销毁它们。但是,这么一来你就要在每个testXxx()方法中都重复这些代码,因为TestCase实例被运行时,依照以下步骤运行:

  1.创建测试用例的实例。

  2.调用setUp()方法,执行一些初始化工作。

  3.运行testXxx()测试方法。

  4.调用tearDown()方法,执行销毁对象的工作。

  如果测试用例类中有多个testXxx()方法,且它们都需要使用到相同的一组对象,我们可以在setUp()中实例化这组对象,并在tearDown()中销毁它们。要编写测试固件,依照以下步骤进行:

  1.创建TestCase类的子类。

  2.在子类中声明若干个测试所用的对象。

  3.覆盖setUp()方法,在方法中实例化这些对象。

  4.覆盖tearDown()方法,释放这些对象的资源。

  如下面即是一个简单的测试固件:

  代码清单 错误!文档中没有指定样式的文字。测试固件

  1. public class MoneyTest extends TestCase
  2. {
  3.  private Money f12CHF;//12瑞士法郎
  4.  private Money f14CHF; //14瑞士法郎
  5.  private Money f28USD; //28美国美元
  6.  protected void setUp() {
  7.   f12CHF= new Money(12, "CHF");
  8.   f14CHF= new Money(14, "CHF");
  9.   f28USD= new Money(28, "USD");
  10.  }
  11.  protected void tearDown(){}
  12. }


  第3~5行声明了3个Money类对象(测试固件),在setUp()方法中实例化这3个对象(第7~9行),由于这些对象可以被垃圾进行直接回收,所以在tearDown()中不做任何操作。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/java/)

   测试用例(TestCase)

  有了测试固件,就可以开始编写测试用例的测试方法了。当然你也可不需要测试固件而直接编写测试用例方法。下面我们在测试固件的基础上添加测试用例方法testMoneyBag(),代码如下所示:

  代码清单 错误!文档中没有指定样式的文字。测试用例方法

  1. public class MoneyTest extends TestCase
  2. {
  3.  private Money f12CHF;//12瑞士法郎
  4.  private Money f14CHF; //14瑞士法郎
  5.  private Money f28USD; //28美国美元
  6.  protected void setUp() {
  7.   f12CHF= new Money(12, "CHF");
  8.   f14CHF= new Money(14, "CHF");
  9.   f28USD= new Money(28, "USD");
  10. }
  11.  public void testMoneyBag()
  12.  { 
  13.   Money bag[]= { f26CHF, f2

展开更多 50%)
分享

猜你喜欢

JBuilder2005单元测试之JUnit框架

Java JAVA基础
JBuilder2005单元测试之JUnit框架

JBuilder2005单元测试之创建测试固件

Java JAVA基础
JBuilder2005单元测试之创建测试固件

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

JBuilder2005单元测试体验之测试配置

Java JAVA基础
JBuilder2005单元测试体验之测试配置

JBuilder2005单元测试之业务类介绍

Java JAVA基础
JBuilder2005单元测试之业务类介绍

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

JBuilder2005单元测试之捆绑多个用例

Java JAVA基础
JBuilder2005单元测试之捆绑多个用例

JBuilder 2005单元测试之慨述

Java JAVA基础
JBuilder 2005单元测试之慨述

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

初学J2ME的一点经验

初学J2ME的一点经验

《灵魂献祭Delta》爱丽丝的无限魔宫模式游戏流程攻略

《灵魂献祭Delta》爱丽丝的无限魔宫模式游戏流程攻略
下拉加载更多内容 ↓