当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:13:00  来源:本站整理

<b>JUnit反情势</b>[Java编程]

赞助商链接



  本文“<b>JUnit反情势</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

JUnit 的呈现为开辟人员带来了福音.遗憾的是,很多人仍旧认为学会 JUnit API,编写几个测试,最后得到一个测试杰出的利用程序就充足了.这种设法比不举行任何测试还要糟,因为这会招致对代码安康状况的曲解.学习 JUnit 是测试中最简单的一部份.编写优异的测试则是较艰难的一个环节.本文将介绍一些常见的 JUnit 反情势,并阐明若何办理它们.

两个月前,我和老婆决意在厨房里装上木镶板.这是我第一次装修屋子,我带着一股盲目乐观主义精神,利用铁锤和钉子干起了装修.但这样做几近是一场灾难,因为我用不好铁锤.最后,老婆不得不重新修整被我敲打得高低不平的镶板和呈现的缝隙.

在装修卧室时,我认为已学到了一些经验教导,这次借来了岳父的气钉枪.仅用了装修厨房非常之一的时间,就装修完了卧室,但是气钉枪不能补偿我在其他方面的失误 —— 比方忘掉了保持木板顶部的水平,切割木板时切错了位置,忘掉查抄木板,将有裂纹的木板钉了上去,等等.还呈现了其他很多问题,这些问题好在都被细心的老婆注意到了.通过此事,我熟习到:气钉枪不如一个木匠.

JUnit:气钉枪式测试工具

我认为,JUnit 很像爸爸的气钉枪.JUnit 呈现之前,测试不是不大概的,但是非常艰难.事实上,它艰难到了导致普通没有人乐意举行测试.即便举行测试,也仅仅是对那些看起来分外复杂或脆弱,乃至人们有来由举行额外测试的那部份.

JUnit 就是专门办理此问题的工具.这里不可告人的奥秘是,此现象导致很多编程人员实际上乐于 编写一些测试.这样就造成了编程人员编写测试,而客户期盼测试的情形.固然仍有一些保持者,但大都客户目前开始偏向于利用我们在测试范畴的新霸主 JUnit.(有关酷爱测试的更多信息,请参阅 参考资料).

问题是,JUnit 不是万能药,它是一种名副其实的工具.像其他优异的工具一样(JUnit 是最优异的工具之一),JUnit 只做一件事情,并且能超卓地完成,它供应一个用于履行测试的框架.具体表目前:

JUnit 供应一个用于编写测试的模板,该模板可以安装、履行和卸载.

它答应您在层次构造中组织测试.

它答应您自动而又便利地履行测试.

它削减了来自履行历程中的测试报告量,答应利用同一测试套件中的差别测试操作程序.

固然 JUnit 功效强盛,利用起来很简单,但是,它也存在很多不足之处,需求其他工具来弥补这些缺陷.以下是 JUnit 无法做到的:

对被测试的单元自动生成测试.

供应覆盖条件.

编写了劣质的测试时举行提醒.

阐明的概念

Robert Binder 编写了一本好书,名称为 Testing Object-Oriented Systems: Models, Patterns, and Tools.Binder 是一位少有的天才人物 —— 一个测试圣人.作为一本测试方面的参考资料,该书的代价是无法衡量的.Binder 在本书的开首再次谈及 Scott Meyers 的测试问题.这个问题就是为 Triangle 对象编写单元测试.

Java™ 技术实现了一个采取三个边长的构造函数.每一边各有一个 getters 和 setters.该技术实现有三种办法:isIsosceles()、isScalene() 和 isEquilateral(),此中每一种办法都可以返回 true 或 false,具体情形取决于三角形的配置.triangle 还是 Polygon 范例的一个子类, 后者由 Figure 类派生而来.Figure 是代表对象的抽象类,该类可以通过光栅显示描绘.目前面对的挑衅是若何编写此类的测试.

Binder 从 Meyers 的原始程序办理筹划中列出了 33 个测试,并供应了 32 个与面向对象的问题属性有密切关系的测试.所以目前一共有 65 个测试.除非是影响生命安全的重要软件,不然您大概历来不会如此具体地测试代码,也不会理解到本来它是如此测试的.缘由不是您有生理缺陷大概怠惰.而是您没有受过测试方面的锻炼,还因为您将专用开辟时间都损耗在了编程本领上,而不是损耗在测试本领上.该怎么办呢?JUnit 可以让测试变得简单易行.


  以上是“<b>JUnit反情势</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .