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

诊断Java代码 - 筹划"可测试的"操纵程序[Java编程]

赞助商链接



  本文“诊断Java代码 - 筹划"可测试的"操纵程序[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

当计划大型程序的时刻,您必须时刻留神差别计划选项对诸如性能和可扩大 性这样的特点的影响.随着软件产品的日渐复杂及其无所不在的布置,软件的“ 可测试性”也成了更重要的考虑事项.

完好测试代码的重要性是明显的.花在编写测试和测试代码上的时间和精神 给您带来的回报是保护本钱的大幅降低.

但是,除非您很当心,不然您花在测试代码上的精神大概会首先到达花在编 写代码上的精神的几倍!我曾看到程序员们齐心合力地对他们的全部代码举行单 元测试,后果花在上面的时间使大大都人都以懊丧而告终.

幸运的是,没有必要这样.在您计划软件的时刻利用一些基本原则,编写易 于测试、乃至使测试成为爱好的代码是大概的.

跟别的编码原则一样,这些原则也不是无可置疑或不可改变的教条.有时刻 冲破这些法则也是必要的.因此,理解每条原则背后的动机和判断什么时刻这些动机 不实用(或应让位给更关心的问题)的本领是很重要的.

原则 1. 到 GUI 视图的表面去

尽大概把代码移到 GUI 视图的表面.然后各种 GUI 行动就可以成了模子上的 简单办法调用.为什么您需求这样做呢?

对 GUI 测试者来说,通过办法调用测试功效比间接地测试功效简单的多.

另一个好处是它使改正程序功效而不影响视图变的更简单.

当然,视图中也大概存在错误.在抱负情形下,对程序的测试将同时查抄模 型和视图.

原则 2. 利用范例举行错误查抄

范例是您的朋友 ― 尽大概多地用范例系统自动查抄错误.

范例能在程序运行之前自动捕捉程序中的错误.没有静态范例查抄的话,类 型错误将作为破坏者逗留在您的程序中,直到得当的履行途径刚巧把它揭穿出来 为止.

最大限度地施展利用范例的所长是棘手的.普通,一组数据构造可以在一个 抽象级别上一同利用,大概被分出,成为一个单一的、更高抽象级别的一个新的 相关数据范例.

事实上,编程语言自身的历史可以当作是可以编程的抽象级别的渐渐提高. 汇编语言供应了比特到整数和浮点数的抽象.接下来是记录和函数抽象,然后又 是诸如对象、类、线程以及非常这样的抽象.

在每一抽象级别上,到达与更高级别抽象一致的功效是大概的,但那实质上 仅仅是耗费更多精神,冒更多的错误风险.

在面向对象语言(别的现代语言也一样)中,一个程序员在计划抽象上有很 大的机动性.在哪个抽象级别上计划程序就成了基于折衷的决意,比方由抽象级 别供应的更多的结实性和由于不能在更低抽象级别上工作而带来的表达性(有时 是性能)的丧失.

普通,高级别抽象带来的结实性和简单性的代价很少被别的考虑事项超越.

原则 3. 利用疗养器避免“弊端线路”(fault line)

我用“弊端线路”来指独立组件之间的接口,独立组件之间和组件与其呼应 子组件之间相比,很少有交互.这种弊端线路的一个典型示例是 GUI 视图和它 的模子之间的接口.别的示例包含在编译器中处理的差别阶段之间的接口或操作 系统的内核和用户界面之间的接口.

找出程序的弊端线路,然后用具有转发功效的疗养器快速拜候聚合组件.

沿着弊端线路断绝测试每个组件普通更简单.但假如每个组件表露的对象有 很多,大概组件中您想测试的一些对象只有通过量个嵌套引用才能拜候,那么测 试就会变的很乏味.

不用断绝测试,而是拥有您在它上面调用您想测试的各种办法的单个疗养器 对象普通是有帮忙的.这个对象然后能把这些办法调用转发到得当的地方.

沿着相同线路,计划和自己的测试代码串通在一同的程序组件接口是有益的 .这将使您把注意力集合在使这些接口尽大概简单上.


  以上是“诊断Java代码 - 筹划"可测试的"操纵程序[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 诊断Java代码 - 筹划"可测试的"操纵程序
  • <b>诊断Java代码: 臆想实现错误情势,第2部份</b>
  • 诊断Java代码: 筹划可扩大的操纵程序,第2部份
  • 诊断Java代码::Split Cleaner错误情势
  • 诊断Java代码: Fictitious Implementation错误情势,第1部份
  • 诊断Java代码:筹划可扩大的操纵程序,第1部份
  • 诊断Java代码:孤线程(Orphaned Thread)错误情势
  • 诊断Java代码
  • 诊断Java代码: 单元测试与自动化代码解析协同工作
  • 诊断Java代码: Repl供应交互式评价
  • 诊断Java代码: Liar View错误情势
  • 诊断Java代码: Java编程中的断言和时态逻辑
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

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

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