知识大全 JBuilder2005单元测试之JUnit框架
Posted 知
篇首语:别裁伪体亲风雅,转益多师是汝师。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 JBuilder2005单元测试之JUnit框架相关的知识,希望对你有一定的参考价值。
JBuilder2005单元测试之JUnit框架 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
简单的框架 JUnit是由Erich Gamma和Kent Beck开发的开源测试框架 JBuilder集成了这个框架并对此做了扩展 JUnit之所以流行并为广大的开发人员所推崇 一是因为它实战性强 功能强大 二是因为它实在简单 一个产品或框架要能有生命力 最好都具备这样的特点 简单地讲这个框架提供了许多断言(assert)方法 允许你设置测试的规则 如 assertEquals() assertNull() assertNotSame() assertTrue()等方法 一个测试用例包括了多个断言 当运行测试用例后 JUnit运行器会报告哪些断言没有通过 开发人员就可顺籐摸瓜搞个水落石出了 而传统的测试方法需要将期望的结果用诸如System out println()等语句将过程信息打印到控制台或日志中 由开发人员观察输出信息以判断是否正确 现在这种 观察 的工作由JUnit的那些assertXxx()方法自动完成 JUnit的测试框架类结构很简单 主要由 个类组成 其类图关系如下图所示 图 错误!文档中没有指定样式的文字 JUnit测试框架类结构 ·junit framework Test 测试接口 ·junit framework TestCase 测试用例类 业务类的测试用例类只需要承继这个TestCase 根据情况编写若干个public void testXxx()方法 在方法中通过assertYyy()定制若干测试规则就可以了 ·junit framework TestSuite 测试套件类 它可以将多个测试用例类捆绑在一起运行 也可以捆绑另一个测试套件 测试固件(Fixture) 一个测试用例可以包含若干个testXxx()测试方法 测试用例测试一个或多个类API接口的正确性 当然在调用类API时 需要事先创建这个类的对象及一些关联的对象 这组对象就称为测试固件(Fixture) 相当于测试用例的 工作对象 我们在前面说过 一个测试用例类可以包含多个testXxx()方法 在运行时 每个测试方法都对应一个测试用例类的实例 当然 你可以在具体的testXxx()方法里声明并实例化业务类的实例 在测试完成后再销毁它们 但是 这么一来你就要在每个testXxx()方法中都重复这些代码 因为TestCase实例被运行时 依照以下步骤运行 .创建测试用例的实例 .调用setUp()方法 执行一些初始化工作 .运行testXxx()测试方法 .调用tearDown()方法 执行销毁对象的工作 如果测试用例类中有多个testXxx()方法 且它们都需要使用到相同的一组对象 我们可以在setUp()中实例化这组对象 并在tearDown()中销毁它们 要编写测试固件 依照以下步骤进行 .创建TestCase类的子类 .在子类中声明若干个测试所用的对象 .覆蓋setUp()方法 在方法中实例化这些对象 .覆蓋tearDown()方法 释放这些对象的资源 如下面即是一个简单的测试固件 代码清单 错误!文档中没有指定样式的文字 测试固件 public class MoneyTest extends TestCase private Money f CHF;// 瑞士法郎 private Money f CHF; // 瑞士法郎 private Money f USD; // 美国美元 protected void setUp() f CHF= new Money( CHF ); f CHF= new Money( CHF ); f USD= new Money( USD ); protected void tearDown() 第 ~ 行声明了 个Money类对象(测试固件) 在setUp()方法中实例化这 个对象(第 ~ 行) 由于这些对象可以被垃圾进行直接回收 所以在tearDown()中不做任何操作 测试用例(TestCase) 有了测试固件 就可以开始编写测试用例的测试方法了 当然你也可不需要测试固件而直接编写测试用例方法 下面我们在测试固件的基础上添加测试用例方法testMoneyBag() 代码如下所示 代码清单 错误!文档中没有指定样式的文字 测试用例方法 public class MoneyTest extends TestCase private Money f CHF;// 瑞士法郎 private Money f CHF; // 瑞士法郎 private Money f USD; // 美国美元 protected void setUp() f CHF= new Money( CHF ); f CHF= new Money( CHF ); f USD= new Money( USD ); public void testMoneyBag() Money bag[]= f CHF f USD ; MoneyBag expected= new MoneyBag(bag); assertEquals(expected f CHF add(f USD add(f CHF))); protected void tearDown() 测试方法都必须以test为前缀 且必须是public void的 运行器以此为反射查找规则找到这些测试用例方法 在一个方法中可以包括多个assertYyy()方法 每个assertYyy()方法都是一个测试规则 像第 行的assertYyy()断言方法即为测试Money的add()方法和MoneyBag类正确性的测试规则 你可以在MoneyTest中添加多个public void testXxx()方法 运行器为每个方法生成一个测试用例实例 分别运行 测试套件(TestSuite) 如果每次只能运行一个测试用例 那么又陷入了我们前面所谈到的传统测试的窘境 手工去运行一个个测试用例 测试套件专门为解决这一问题而来 它通过TestSuite对象将多个测试用例组装成到一个测试套件 则测试套件批量运行 需要特殊指出的是 可以把一个测试套件整个添加到另一个测试套件中 就象小筐装进大筐里变成一个箧一样 测试套件类也通过承继TestCase类实现 只不过它提供了一个public static Test suite()静态方法 在该方法中将多个测试用例捆绑组装在一起 一个典型的测试套件代码如下所示 代码清单 错误!文档中没有指定样式的文字 测试套件 public class MoneyTestSuite extends TestCase public TestSuite (String s) super(s); public static Test suite() TestSuite suite = new TestSuite(); suite addTestSuite(MoneyTest class); suite addTestSuite(MoneyBag class); return suite; 在第 行中声明并实例化了一个TestSuite 在第 行分别加入一个测试用例 你可以通过suite addTest(Test t)方法添加一个套件 这样运行这个套件就可以自动运行所有测试用例的测试方法了 测试运行器 JUnit提供了 个标准的测试运行器运行这些测试用例或测试套件 这 个测试运行器分别是 ·junit textui TestRunner 文本测试运行器 ·junit awtui TestRunner 使用AWT组件界面的测试运行器 ·junit swingui TestRunner 使用Swing组件界面的测试运行器 下面是基于AWT组件的测试运行器 如下图所示 图 错误!文档中没有指定样式的文字 AWT测试运行器 ·Test class name 指定测试用例类和测试套件类 ·一个进度条 表示运行测试的执行进度 进度条下是正确 错误 失败的测试统计数 ·Error and Failures 列出了测试错误和失败的列表 点选其中的一个选项时 JUnit在窗口底部列出错误跟踪迹 提示 JBuilder提供了方便的运行测试用例和测试套件类的方法 你只须点击鼠标右键就可直接调用了 此外 JBuilder提供了一个JBTestRunner测试运行器 在功能和易用性上非JUnit提供的测试运行器所能媲美 JBuilder支持JUnit所提供的两个测试运行器 junit textui TestRunner和junit swingui TestRunner cha138/Article/program/Java/ky/201311/28708相关参考
JBuilder2005单元测试体验之测试配置 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在
JBuilder2005单元测试之捆绑多个用例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 目
知识大全 Spring+Hibernate的单元测试JUnit
Spring+Hibernate的单元测试JUnit 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
使用JUnit对EJB进行单元测试[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
使用JUnit对EJB进行单元测试[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
使用JUnit对EJB进行单元测试[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Java标准单元测试库JUnit4抢先看 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! JUni
知识大全 怎样使用Junit Framework进行单元测试的编写
怎样使用JunitFramework进行单元测试的编写 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧
测试分类白箱测试黑箱测试单元测试集成测试功能测试……白箱测试是指在知道被测试的软件如何(How)完成功能和完成什么样(What)的功能的条件下所作的测试一般是由开发人员完成单元测试是一种白箱测试因
知识大全 JBuilder2005 Struts深度体验之改造
JBuilder2005Struts深度体验之改造 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!