快速业务通道

追求代码质量 - 使用TestNG-Abbot实现自动化GUI测试 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
ixture fix = new LabelFixture(this.fixture,  "definition");   fix.shouldHaveThisText("Combative in nature;  belligerent."); } 

注意 fixture 对象通过一个逻辑名称和特定的GUI 组件连接在一起。例如 ,在 Word Finder GUI 中,通过编程将 JButton 对象与 “findWord” 名称联 系起来。请注意在定义按钮时,我是如何通过调用组件的setName() 方法做到 这点的,如清单 3 所示:

清单 3. 定义 Find Word 按钮

findWordButton = new  JButton(); findWordButton.setBounds(new Rectangle(71, 113, 105, 29)); findWordButton.setText("Find Word"); findWordButton.setName("findWord");

同样要注意,在 清单 2 中,我是如何通过将 “findWord” 名称传递给 TestNG-Abbot 的ButtonFixture 对象而获得对按钮的引用。“单击” 按钮( 调用click 方法)然后使用TestNG-Abbot 的LabelFixture 对象插入单词的释义,多么酷!不过不要就此满足。

追求代码质量 - 使用TestNG-Abbot实现自动化GUI测试(4)

时间:2010-12-09 IBM Andrew Glover

测试意外场景

当然,如果我非常希望验证我的Word Finder GUI,我必须确保在用户执行 意外操作时 —— 程序能够正常工作,比如在输入单词之前按下 Find Word 按 钮,或者情况更糟,比如他们输入了一个无效的单词。举例来说,如果用户没有 向文本字段输入内容,GUI 应该显示特定的信息,如清单 4 所示:

图 4. 糟糕的极端例子

当然,使用TestNG-Abbot 测试这种情况非常简单,不是吗?我所做的仅仅 是将空值传送到 TextComponentFixture 中,按下按钮(通过对 ButtonFixture 使用click 方法)并插入 “Please enter a valid word” 响应!

清单 4. 测试一个极端例子:如果有人没有输入单词就按下了按钮该怎么办 ?

@Test public void assertNoWordPresentInvalidText() {   TextComponentFixture text1 = new TextComponentFixture (this.fixture,    "wordValue");   text1.enterText("");   ButtonFixture bfix = new ButtonFixture(this.fixture,  "findWord");   bfix.click();   LabelFixture fix = new LabelFixture(this.fixture,  "definition");   fix.shouldHaveThisText("Please enter a valid word"); }

如清单 4 所示,一旦理解了获得所需 GUI 组件的引用时,事情并不是很困 难。最后一步是检验其他 糟糕的极端例子 —— 输入了无效的单词。这个过程 与 清单 1 和 清单 3 非常相似:仅仅是将所需的String 传递到 TextComponentFixture 对象,单击,然后插入特定的文本。如清单 5 所示:

清单 5. 轻松验证另一个极端例子!

@Test public void assertNoWordPresentInvalidText() {   TextComponentFixture text1 = new TextComponentFixture (this.fixture,    "wordValue");   text1.enterText("Ha77");   ButtonFixture bfix = new ButtonFixture(this.fixture,  "findWord");   bfix.click();   LabelFixture fix = new LabelFixture(this.fixture,  "definition");   fix.shouldHaveThisText("Word doesn''t exist in  dictionary"); }

清单 5 很好地验证了图 5 演示的功能,难道您不这样认为吗?

图 5. 输入了无效单词

真不错!我们已经使用TestNG-Abbot 轻而易举地验证了三种不同的用户场 景。对于每种情况,我需要的只是被测试的组件的逻辑名称以及一系列步骤

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