快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22
“模式密度”。设计的中心是一个丰富的关系集合,这些关系与所支持的参与者(player)相互关联。

这是另外一种看待JUnit中所有模式的方式。在这个情节图板(storyboard)上,依次对每个模式的影响进行抽象地表示。于是,Command模式创建了TestCase类,Template Method模式创建了run方法,等等。(情节图板的标记是在图6中标记的基础上删除了所有的文字)。

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

图7 JUnit模式的情节图板

关于情节图板有一点要注意的是,图的复杂性是如何在我们应用Composite时进行跃迁的。其以图示的方式证实了我们的直觉,即Composite是一个强大的模式,但它会“使得图变得复杂。”因此应该谨慎地予以使用。

4 结论

最后,让我们作一些全面的观察:

· 模式

我们发现从模式的角度来论述设计是非常宝贵的,无论是在我们进行框架的开发中,还是我们试图向其他人论述它时。你现在正处于一个完美的位置来判定,以模式来描述一个框架是否有效。如果你喜欢上面的论述,请为你自己的系统尝试相同的表现风格。

· 模式密度

TestCase周围的模式“密度”比较高,其是JUnit的关键抽象。高模式密度的设计更加易于使用,但却更加难于修改。我们发现像这样一个在关键抽象周围的高模式密度,对于成熟的框架而言是常见的。其对立面则应适用于那些不成熟的框架-它们应该具有低模式密度。一旦你发现你所要真正解决的问题,你便能够开始“浓缩(compress)”这个解决方案,直到一个模式越来越密集的区域,而这些模式在其中提供了杠杆的作用。

· 用自己做的东西

一旦我们完成了基本的单元测试功能,我们自身就要将其应用起来。TestCase可以验证框架能够为错误,成功和失败报告正确的结果。我们发现随着框架设计的继续演变,这是无价的。我们发现JUnit的最具挑战性的应用便是测试其本身的行为。

· 交集(intersection),而非并集(union)

在框架开发中有一个诱惑就是,包含每一个你所能够具有的特性。毕竟,你想使框架尽可能得有价值。然而,会有一种阻碍-开发者不得不来决定使用你的框架。框架所具有的特性越少,那么学起来就越容易,开发者使用它的可能性就越大。JUnit便是根据这种风格写就的。其仅实现了那些测试运行所完全基本的特性-运行测试的套件,使各个测试的执行彼此相互隔离,以及测试的自动运行。是的,我们无法抵抗对于一些特性的添加,但是我们会小心地将其放到它们自己的扩展包中(test.extensions)。该包中有一个值得注意的成员是TestDecorator,其允许在一个测试之前和之后可以执行附加的代码。

· 框架编写者要读他们的代码

我们花在阅读JUnit的代码上的时间比起编写它的时间要多出很多。而且花在去除重复功能上的时间几乎与添加新功能的时间相等。我们积极地进行设计上的实验,以多种我们能够想出的不同方式来添加新的类以及移动职责。通过对JUnit持续不断地洞察(测试,对象设计,框架开发),以及发表更深入的文章的机会,我们因为我们的偏执而获得了回报(并将依然获得回报)。

Junit的最新版本可从ftp://www.armaties.com/D/home/armaties/ftp/TestingFramework/JUnit/下载。

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