追求代码质量 - 使用TestNG-Abbot实现自动化GUI测试 - 编程入门网
创建了一个简单的GUI,它执行 一种功能 —— 在底层字典(也就是一个数据库)中查阅一个给定的单词并显示 其释义。不管该应用程序实际的代码如何,测试该 GUI 用户场景包括三个步骤 :
在文本框中输入一个单词。 单击 Find Word 按钮。 验证是否给出了该单词释义。 当然,也存在一些极端的例子,比如一个用户按下了 Find Word 按钮但没有 输入单词,或者,用户输入了一个无效的单词。我将通过一些其他的测试案例说 明如何处理这类场景。 了解 GUI 图 1 显示了已启动的Word Finder GUI。记住该 GUI 之所以简单只有一个 原因:它演示了 TestNG-Abbot 的三个 fixture 类以及一些要引导的测试用例 ! 图 1. Word Finder GUI 当使用TestNG-Abbot 进行测试时,应该首先检查 GUI 的组件。Word Finder GUI 由图 2 所示的三个组件组成: 图 2. Word Finder GUI 的组件 如您所见,Word Finder GUI 由一个 JTextField(用来输入要查询的单词) 、一个 JButton(使 GUI 从字典数据库中获取释义)和一个 JEditorPane (显 示释义)组成。 在良好的场景中,如果我输入 pugnacious 然后单击 Find Word 按钮, JEditorPane 将显示 “Combative in nature; belligerent”,如图 3 所示: 图 3. 良好的场景 —— 工作良好! 追求代码质量 - 使用TestNG-Abbot实现自动化GUI测试(3)时间:2010-12-09 IBM Andrew Glover使用TestNG-Abbot 进行测试 要开始使用TestNG-Abbot,需要创建一个常规的测试 fixture,它将使用TestNG 的BeforeMethod 和 AfterMethod 注释为您的GUI 创建一个实例。TestNG-Abbot 框架附带了一个方便的AbbotFixture 对象,它简化了 GUI 组件 的使用,实际上也引导了整个测试过程。要在测试 fixture 中使用该对象,需 要在测试前将一个 GUI 实例传递给 fixture 对象的showWindow() 方法,然后 使用名为 cleanUp() 的方法对 fixture 进行清理。 在清单 1 中,我创建了一个 TestNG 测试(实际上并没有对其做任何测试) ,该测试在 fixture 中使用TestNG-Abbot 的AbbotFixture 对象来存放 Word Finder GUI 的实例。 清单 1. 使用AbbotFixture 对象定义 WordFindGUITest
由于 Word Finder GUI 的用户可见的行为会影响 图 2 所示的三个组件,需 要通过编程对其进行调整,以确保工作能正常进行。比如,验证 图 3 演示的良 好的场景,需要执行下面三个步骤: 获得对 JTextField 的引用并向其添加一些文本。 获得 JButton 的句柄并单击它。 获得对 JLabel 组件的引用并检验是否显示了正确的释义。 检验良好的场景 使用TestNG-Abbot,可以通过这三个方便的fixture 类型执行上面所属的三个步骤:TextComponentFixture 用于 JTextField;ButtonFixture 用于 Find Word 按钮;LabelFixture 用来验证 JLabel 中特定的文本。 清单 2 显示了用于验证 图 3 中演示的内容是否可以正常工作的代码: 清单 2. 测试一个良好场景
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |