动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息

本月文章推荐
.Java技巧21使用档案文件提高appl.
.java ee5平台java持久化开发(ej.
.struts+spring+ibatis轻量级J2EE.
.安裝amfphp.
.Java性能优化技巧之J2EE篇.
.采用多线程制作动画.
.面向对象编程:Java中的抽象数据类.
.类装入问题解密,第 1 部分: 类装.
.解析JBuilder数据库应用程序.
.避免使用空指针作为标志以防止出.
.怎样学习java个人经验.
.JAVA学习经验谈.
.Java学习第一个图形界面.
.Java中数组之间的比较.
.Java思路 开发易于移植的J2ME游戏.
.weblogic常见问题提示.
.J2ME学习笔记(4)—用MIDP API开发.
.Hibernate投入JBoss怀抱.
.Microsoft .NET的优势与劣势.
.透过 Java 参数来改善 Java 效能.

JFCUnit测试GUI的一个实例(代码篇)

发表日期:2008-1-5 |



  有关如何设置JFCUnit,请参考我前面的文章:JFCUnit测试GUI的一个实例(配置篇)
  
  http://blog.csdn.net/EagleWatch/archive/2005/08/24/464541.ASPx
  
  下面给出被测试代码,因为只是普通的样例,所以不加以太多的说明。这段GUI代码的编写使用了Eclipse的GUI创建插件——Visual Editor,假如你有爱好可以去相关的网站看看,有关这方面的介绍还是很多的。
  
  因为时参考一部分资料,加上自己摸索做的DEMO,假如有什么问题和建议欢迎和我联系(DanielWJiang@Gmail.com)我会在第一时间更新这篇文章。
  
  下面的应用程序的主要功能是,当用户在JTestField中输入数据,显示控件会同步显示输入的信息,点击OK按钮退出程序。
  
  JFCUnit没有直接在Eclipse内建的项目中给出可视化的创建JFCUnit Test Case的方法(也许是我我没有了解到)。这里采用的方法是利用Eclipse内提供的JUnit Test Case创建向导产生一个JUnitTestCase的派生类,然后改变extend后面的类名称为JFCTestCase。因为JFCUnit是JUnit的一个延伸,所以你这样做不会有任何问题。
  
  这便有必要提一下的是,JUnit对于我们的用户界面,除了它默认的原始类构造函数,main(),构造函数setUp()和析构函数tearDown()以外,不会创建任何测试函数,这一点和JUnit一般的测试不同,所以我们必须手动创建一些测试函数。
  
  手动创建的函数必须满足:
  
  §   它是一个public final的函数
  
  §   而且必须以test冠以函数名
  
  要演示的例子当中可以看到的手动添加的函数有两个,一个是testDialog(),另一个是testAllComponentsInit()。先看testDialog()这个函数:
  
  public final void testDialog() {
  
  JDialog dialog;
  
  Java.util.List showingWindows;
  
  NamedComponentFinder finder = new NamedComponentFinder(
  
  JComponent.class, "OKButton");
  
  JButton okButton = (JButton) finder.find(demo, 0);
  
  assertNotNull("Could not find the OK button", okButton);
  
  DialogFinder dFinder = new DialogFinder(demo.getTitle());
  
  showingWindows = dFinder.findAll();
  
  dialog = (JDialog) showingWindows.get(0);
  
  finder.setName("InputField");
  
  inputText = (JTextField) finder.find(demo, 0);
  
  assertNotNull("Could not find JTextField", inputText);
  
  finder.setName("DisplayField");
  
  displayText1 = (JTextField) finder.find(demo, 0);
  
  assertNotNull("Could not find JTextField", displayText1);
  
  XMLParser xmlFile;
  
  int len;
  
  try {
  
  xmlFile = new XMLParser();
  
  xmlFile.setURI(".\\config.xml");
  
  len = xmlFile.getTestDataListLength();
  
  ctrlName = xmlFile.getCtrlNames();
  
  ctrlValue = xmlFile.getCtrlValues();
  
  String content = HtmlMaker.HtmlFileHeader();
  
  for (int i = 0; i < len; i++) {
  
  try {
  
  index = i;
  
  // Make the text field get the focus
  
  pauseAWT();
  
  inputText.setText(ctrlValue[i]);
  
  inputText.requestFocus();
  
  assertEquals("Set focus failed.", inputText.getText(),
  
  ctrlValue[i]);
  
  JFCTestHelper.disposeWindow(dialog, this);
  
  okButton.requestFocus();
  
  flushAWT();
  
  // Gernate the report of the test
  
  content = HtmlMaker.HtmlFileContentsFill(content, inputText
  
  .getName(), inputText.getText());
  
  content = HtmlMaker.HtmlFileContentsFill(content, displayText1
  
  .getName(), displayText1.getText());
  
  // Simulate click the OK button.
  
  pauseAWT();
  
  getHelper().enterClickAndLeave(
  
  new MouseEventData(this, okButton));
  
  flushAWT();
  
  } catch (Exception ex) {
  
  ex.printStackTrace();
  
  }
  
  }
  
  content = HtmlMaker.HtmlFileEnd(content);
  
  HtmlMaker html = new HtmlMaker(content);
  
  } catch (Exception ex) {
  
  ex.printStackTrace();
  
  }
  
  }
  
  §   NamedComponentFinder finder = new NamedComponentFinder(JComponent.class, "OKButton");
  
  NamedComponentFinder是JFCUnit提供的类,用来寻找当前窗体中的控件类实例。这边调用了带参构造函数找寻OK按钮。
  
  §   JButton okButton = (JButton) finder.find(demo, 0);
  
  利用找到的结果来获得OK按钮的控制。
  
  §   assertNotNull("Could not find the OK button", okButton);
  
  为了使下面的测试有意义,所以有必要判定是否为非空的,否则判定当前的TestCase没有成功。
  
  §   DialogFinder dFinder = new DialogFinder(demo.getTitle());
  
  showingWindows = dFinder.findAll();
  
  dialog = (JDialog) showingWindows.get(0);
  
  是可以用上面讲到的内容举一反三了解它的功能是获取窗体实例。
  
  §   inputText.requestFocus();
  
  使输入对话框获取焦点。
  
  §   getHelper().enterClickAndLeave(new MouseEventData(this, okButton));
  
  模拟鼠标点击事件。
  
  §   pauseAWT();
  
  用来停止awt的事件队列,根据文档上的说明,使用pauseAWT()会在调用releaseAWT()以后后恢复队列的运行。但是我尝试调用这个releaseAWT()函数,Eclipse告诉我没有这样的函数定义。在文档中搜索着个函数的定义没有发现。这里我用了flushAWT()来达到启动队列的效果。
  
  §   flushAWT();
  
  上面我们提到了是启动消息队列。
上一篇:在Wicket里面使用一个自己WebSession 人气:860
下一篇:Maven起步——教你开始使用Maven二(图) 人气:749
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-12 team论坛 v2.0.4 bulid 080916 A
2008-10-12 Roclog v3.1.6
2008-10-12 SupeV v1.0.1 简体中文 GBK
2008-10-12 NetCMS v1.6.0.1010 正式版
2008-10-12 PHP考试系统PPFrame v1.2.7
2008-10-12 LPAS个人相册 v1.6.3
2008-10-12 快问仿百度知道系统 动态-静态-互
2008-10-12 方卡广告防点击系统 V1.0 GB2312
2008-10-12 泡菜内容管理系统[PCMS] v1.0 Bu
2008-10-11 联系人分组工具 v1.1 中文破解版
2008-10-11 FaceMelter变脸 v2.0 汉化破解版
2008-10-11 PathTracker道路跟踪仪 v1.2 破解
2008-10-11 Rooms手机聊天室 v0.6.7 破解版
2008-10-11 RemoteDesktop远程桌面 v1.0 破解
2008-10-11 ProRemote远程调音台 v1.0.1 破解
2008-10-11 PicShare照片共享 v1.0.0 破解版
2008-10-11 Photogene照片编辑器 v1.5 汉化破
2008-10-11 WriteRoom共享文档 v1.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成