快速业务通道

诊断Java代码: 进行记录器测试以正确调用方法 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19

诊断Java代码: 进行记录器测试以正确调用方法

时间:2011-02-11 IBM Eric E. Allen

用 JUnit进行单元测试是一个功能强大的方法,它可以确保您的代码基础的完整性,但是一些不变量比其他(方法调用序列是其中一种)更难测试。在诊断Java 代码这一部分,Eric Allen描述了怎样在您的单元测试中使用记录器(一种特殊的侦听器),来确保一个方法调用序列按恰当的顺序发生。请点击文章顶部和底部的 讨论,与作者和其他读者在论坛上分享您关于本文的看法。

随着时间的推移,当系统开发人员,维护人员甚至是系统详细说明改变时,JUnit 框架提供一个很好的方法来改善系统的坚固性。通过测试,您可以检查到代码的某些不变量是受支持的。

测试通常分为两类: 单元和 接受测试:

单元测试确保组成组件完成其应完成的功能。

接受测试确保系统的最高级功能出现在用户面前时,与它设计时的功能一致。

JUnit 可帮助进行单元测试。

理想情况下,为系统开发的单元测试会完全覆盖组成部分的预期不变量的设置,并能确保新的开发人员所作的任何更改都不会破坏现有代码。

实际上,一些不变量将会被测试忽略。部分原因是一些不变量在没达到全面的系统测试水平时,陷入到系统的许多孤立组件的交互作用中。

在本文中,我将讨论一个那种类型的不变量以及如何使用一个复杂的单元测试来检查此不变量。我要讨论的不变量类型是一组相关方法序列调用的恰当顺序。

与 JUnit 握手

在继续之前,熟悉 JUnit 和学会怎样轻松使用它来为您的代码写单元测试非常重要。在 参考资料一节,我已经包括了一个链接,它能链接到下载和开始使用 JUnit 所需要的所有信息。(如果您熟悉 JUnit,请直接跳到 第 1 个示例。)

单元测试为开发人员提供下列功能:

从接口透视图设计类

除去发行包中的类混乱

自动确认捕捉变化的错误

单元测试过程通常按照以下步骤进行:

决定您的组件该做什么。

正式地(或非正式地,取决于复杂性)设计您的组件。

写出单元测试来检查组件的活动。(在这一步,测试将不编译;代码还没写。写测试的目的是用来帮助确定组件的功能目的。)

按设计写出组件代码;如果有必要,则进行单元重组。

当测试(从第 3 步开始)通过后,停止编码过程。

集体讨论其它的代码中断的可能性;写出测试进行确认,然后修改代码。

每次探测到一个缺陷就要写一个新的测试。

每次改动代码后都要重新开始 全部测试。

JUnit 是由 Erich Gamma 和 Kent Beck 创建的一个简单构架,可用来编写可重复的测试,它使得构造一个可增加改动的测试套件变得相对简单,该测试套件可帮助开发人员评估开发的进展以及探测非故意的影响。JUnit 是 xUnit 架构的一个实例。

有了 JUnit,每个测试实例继承了 TestCase 类。其中名字以 "test" 开始的每个无参数的公共方法每次执行一次。测试方法调用测试下的组件,并对该组件的行为做出断言。在不能做出断言的时候,JUnit 还会报告失败的位置。

诊断Java代码: 进行记录器测试以正确调用方法(2)

时间:2011-02-11 IBM Eric E. Allen

由于以下的原因,JUnit 尤其有用:

它是一个完整的、开放源代码的产品;您不必自己写或购买一个框架。

因为它是公开源代码的,所以它的许多用户都是很有经验的。

它允许您从产品代码中分离出测试代码。

在构建过程中很容易整合。

现在,您已经了解了 JUnit,让我们看一个示例。

Greeters 和 Senders

考虑下面的示例,它将给外部客户端发送不同的消息:

清单 1. 同客户端通信的三个类

public class Greeter {    public void sayHello() {...}    public void sayGoodbye() {...} } public class Sender {    public void sendFirstMessage() {...}    public void sendSecon

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号