冷月葬花魂 发表于 2015-1-18 11:10:10

来看调试和测试Swing代码

一旦你有了思想,那你编的程序就有了灵魂,不管是什么语言到了你的手里都会是你的工具而已,他们的价值是能尽快帮助你实现你想要的目标。但是如果你没有了思想,那就像是海里的帆船失去了船帆,是很难到打海的另一边的。
Swing是一个壮大的GUI工具包;它可扩大、可设置且跨平台。不外Swing的天真性既是它的次要上风也是它的严重缺点。Swing能够分歧的体例构建统一UI。比方,您可使用插页、空缺边框或添补符在GUI组件之间置进距离。鉴于Swing选项太多,懂得现有GUI好像编写新GUI一样使人害怕,且将其视觉表面与底层代码对应起来也并不是易事。(试着在浏览几个利用GridBagLayout的代码行时设想一下GUI。)
不论您是在保护不曾写过的SwingGUI仍是集成第三方GUI组件到您的应用程序中,了解代码的一种公道办法是编写测试。在编写测试的同时您也就熟习了未知代码的外部机关。如许做会同时发生另外一个有代价的了局,即您终极会有一个测试套件,它有助于在保护代码时防备回回的引进。关于第三方GUI组件,测试套件有助于查明新版本的库是不是引进了任何举动变更。
一入手下手最好先编写功效测试,以懂得GUI怎样呼应用户输出。为GUI编写测试比为非可视化代码编写测试更庞大,由于:
实际上,测试必需是主动化的,可是GUI则是供人类—而非盘算机程序—利用的。
传统的单位测试触及到断绝类的测试,不合适GUI组件。在GUI术语中,一个“单位”触及多个GUI组件的合作,因而它自己包括不止一个类。
GUI呼应用户天生的事务。要测试GUI,你必要一种能够摹拟用户输出的方法,一向比及天生的事务散布给一切侦听者,然后反省了局,就像GUI呼应用户一样。编写摹拟用户与GUI交互的代码会很烦琐且易堕落。
变动GUI的结构不该影响健旺的功效测试。
别的一个成绩就是您必需事前熟知要测试的GUI的布局和举动,不然您不知道主动化测试应利用哪些组件,且哪些内容必要考证。总而言之,要编写GUI测试,您必需晓得:
GUI顶用于测试的组件
怎样在测试中唯一标识如许的组件
特定用例中组件的预期形态(或属性)
利用可视化计划工具(好比NetBeansMatisse)您能够弄清GUI的布局。不外这类工具仅显现GUI的计划时信息,这会与您在运转时看到的纷歧样。例如,有些组件大概会依据用户输出而显现为可见或不成见。
传统的调试程序在实行特定用例时不克不及匡助您懂得GUI的形态。当调试程序停在Swing代码中置进的断点时,GUI画图中止,使得GUI看起来像一个空缺方框。幻想情形下,当您利用调试程序举行单步伐试时您但愿看到GUI运作的体例。
侥幸的是,两个开源工具—SwingExplorer和FEST-Swing—能够匡助您疾速懂得现有Swing代码。本文向您先容这些工具,向您展现怎样分离利用它们反省使用程序的GUI布局,测试其功效,并辨认潜伏成绩。
要探求的使用程序
关于文章的年夜部分示例,我将利用一种名为HTMLDocumentEditor的收费功能性HTML编纂器,将其作为要测试的使用程序。假如您想本人完成示例,能够下载使用程序和样例测试代码。显现了运转中的HTMLDocumentEditor:
.HTML编纂器

<p>
再举这样一个例子:如果你想对一个数字取绝对值,你会怎么做呢?java的做法是intc=Math.abs(-166);而ruby的做法是:c=-166.abs。呵呵,这就看出了java与ruby的区别。

深爱那片海 发表于 2015-1-20 15:47:10

学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。

变相怪杰 发表于 2015-1-25 17:41:44

接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。

蒙在股里 发表于 2015-2-3 12:15:49

《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。

第二个灵魂 发表于 2015-2-4 15:09:24

让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。

乐观 发表于 2015-2-5 23:27:02

是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言

不帅 发表于 2015-2-6 02:38:24

你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?

只想知道 发表于 2015-2-7 03:21:27

让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。

若天明 发表于 2015-2-20 01:58:42

接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。

灵魂腐蚀 发表于 2015-3-6 16:02:09

Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站

冷月葬花魂 发表于 2015-3-13 04:08:25

Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站

admin 发表于 2015-3-13 04:08:25

让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。

柔情似水 发表于 2015-3-20 12:00:05

多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
页: [1]
查看完整版本: 来看调试和测试Swing代码