您的位置:首页 > Web前端 > JavaScript

浅析对JSF项目的单元测试

2015-10-08 10:18 501 查看
不知道大家有没有对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中的一些经验,希望需要使用它的人能够少走弯路。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: