浅析对JSF项目的单元测试
创始人
2024-04-07 08:41:02
0

不知道大家有没有对Web页面进行测试的经历?或者正想要对web页面进行测试?为什么我下面这篇文章没什么人回复呢?是因为JSF用到的人少,还是因为我比较超前没几个人想到对JSF页面进行自动测试呢?呵呵

一直以来,我们使用java语言开发的程序主要是web应用程序而非桌面应用,当然java是完全可以用来开发桌面应用程序的,目前已经有了比较成熟的针对java的单元测试工具Junit,但是Junit在web应用开发过程中却很难派上大的用场,比如如何让程序对JSP页面进行自动测试?

我们在太原铁路项目中普遍采用了JSF框架进行前端页面的展现和服务器端业务逻辑的处理,收到了比较好的效果,提高了工作效率,但是我们在程序开发过程中经常重复出现一些解决过的错误,为了解决这些错误又需要重新寻找出现错误的地方,或者因为改动了一个小的地方而导致其他地方出现问题我们却一无所知。

最后我们只能通过一遍遍的点击页面重复测试才能重新树立对程序的信心,然而人是有厌倦心理的,对于一遍遍重复的低级劳动很快就会厌倦,尤其是程序员对自己所写的代码很厌倦测试,这样很难保证程序的质量。

于是我们想过引入单元测试,重复的东西让计算机去做,然而对JSF页面进行单元测试是比较困难的,因为JSF 程序都是运行在容器环境中的,与HTTP请求和相应是紧密关联,如果我们要对ManagedBean进行测试,需要构造上下文环境,这些上下文环境原本是由浏览器和JBoss之类的容器构造的,让我们自己去编写代码构造上下文环境很难也很不现实,对JSF页面的自动测试也是很难想象的,然而有了 JSFUnit的参与这一切将变得很简单,JSFUnit就是我下面要介绍的针对JSF的测试工具。

JSFUnit是jboss开源组织的一个开源项目,JSFUnit beta 1版于2007年11月发布,目前国内使用JSFUnit还比较少,相信日后一定会得到广泛的使用。JSFUnit被设计为通过使用简单的API来完成 JSF项目的集成测试和单元测试的工具。它完全可以访问managed beans, FacesContext, EL表达式和JSF内部组件树,同时可以访问每次客户端请求后的HTML相应。

当然JSFUnit还有其他一些功能,比如JSF静态分析测试可以测试JSF的配置文件faces-config.xml,帮你尽早发现配置问题。 JSFTimer能够进行JSF生命周期每个阶段的性能测试。从此JSF的测试从难以想象到轻松变为现实。目前还只有JSFUnit的官方网站对它的使用方法进行了比较详细的介绍,如有兴趣可以登陆www.jsfunit.org或者http://www.jboss.com/jsfunit/进行查询。下面我将介绍一下我在使用JSFUnit中的一些经验,希望需要使用它的人能够少走弯路。

【编辑推荐】

  1. JSF基础框架
  2. 使用G4JSF集成GWT和JSF
  3. 过渡技术的Ajax及Apusic JSF
  4. NetBeans中JSF的可视化开发
  5. 详细介绍Seam Remoting API和Ajax4jsf

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...