|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
一旦你有了思想,那你编的程序就有了灵魂,不管是什么语言到了你的手里都会是你的工具而已,他们的价值是能尽快帮助你实现你想要的目标。但是如果你没有了思想,那就像是海里的帆船失去了船帆,是很难到打海的另一边的。
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的区别。 |
|