快速业务通道

Java开源测试工具JUnit简介 - 编程入门网

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

Command(命令)模式(请参见Gamma, E., et al. Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, Reading, MA, 1995)则能够比较好地满足我们的需求。摘引其意图(intent),“将一个请求封装成一个对象,从而使你可用不同的请求对客户进行参数化;对请求进行排队或记录请求日志...”Command告诉我们可以为一个操作生成一个对象并给出它的一个“execute(执行)”方法。以下代码定义了TestCase类:

public abstract class TestCase implements Test { … }

Java开源测试工具JUnit简介(2)

时间:2011-01-01 cn-java 李巍

因为我们期望可以通过继承来对该类进行重用,我们将其声明为“public abstract”。暂时忽略其实现接口Test的事实。鉴于当前设计的需要,你可以将TestCase看作是一个孤立的类。

每一个TestCase在创建时都要有一个名称,因此若一个测试失败了,你便可识别出失败的是哪个测试。

public abstract class TestCase implements Test {   private final String fName;   public TestCase(String name) {    fName= name;   }   public abstract void run();    … }

为了阐述JUnit的演变过程,我们将使用图(diagram)来展示构架的快照(snapshot)。我们使用的标记很简单。其使用包含相关模式的尖方框来标注类。当类在模式中的角色(role)显而易见时,则仅显示模式的名称。如果角色并不清晰,则在尖方框中增加与该类相关的参与者的名称。该标记可使图的混乱度降到最小限度,并首次见诸于Applying Design Patterns in Java(请参见Gamma, E., Applying Design Patterns in Java, in Java Gems, SIGS Reference Library, 1997)。图1展示了这种应用于TestCase中的标记。由于我们是在处理一个单独的类并且没有不明确的地方,因此仅显示模式的名称。

Java开源测试工具JUnit简介 - 编程入门网

图1 TestCase应用Command

3.2 空白填充-run()

接下来要解决的问题是给开发者一个便捷的“地方”,用于放置他们的夹具代码和测试代码。将TestCase声明为abstract是指开发者希望通过子类化(subclassing)来对TestCase进行重用。然而,如果我们所有能作的就是提供一个只有一个变量且没有行为的超类,那么将无法做太多的工作来满足我们的首个目标-使测试更易于编写。

幸运的是,所有测试都具有一个共同的结构-建立一个测试夹具,在夹具上运行一些代码,检查结果,然后清理夹具。这意味着每一个测试将与一个新的夹具一起运行,并且一个测试的结果不会影响到其它测试的结果。这支持测试价值最大化的目标。

Template Method(模板方法)比较好地涉及到我们的问题。摘引其意图,“定义一个操作中算法的骨架,并将一些步骤延迟到子类中。Template Method使得子类能够不改变一个算法的结构便可重新定义该算法的某些特定步骤。”这完全恰当。我们就是想让开发者能够分别来考虑如何编写夹具(建立和拆卸)代码,以及如何编写测试代码。不管怎样,这种执行的次序对于所有测试都将保持相同,而不管夹具代码如何编写,或测试代码如何编写。

Template Method如下:

public void run() {  setUp();  runTest();  tearDown(); }

Java开源测试工具JUnit简介(3)

时间:2011-01-01 cn-java 李巍

这些方法被缺省实现为“什么都不做”:

protected void runTest() { } protected void setUp() { } protected void tearDown() { }

由于setUp和tearDown会被用来重写(override),而且其将由框架来进行调用,因此我们将其声明为protected。我们的第二个快照如图2所示。

Java开源测试工具JUnit简介 - 编程入门网

图2 TestCase.run()应用Template Method

3.3 结果报告-Test

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号