燃爆上海 5·23-24,AICon 大模型实战风暴,50+ 干货一网打尽,100% 日程上线 了解详情
写点什么

JSF Testing Tools

  • 2008-01-03
  • 本文字数:1631 字

    阅读完需:约 5 分钟

因为在容器以外测试 JSF 组件有所限制,所以大家一直认为对于 JSF 应用进行单元测试是困难的。多数 web 层的测试框架遵循黑盒测试方式,开发者用 web 组件编写测试类来验证渲染的 HTML 输出是否符合预期。 HtmlUnit HttpUnit ,Canoo WebTest Selenium 等框架都属于这个类型。这些框架的局限在于它们仅仅只能测试 web 应用的客户端。

但是这种现象已经随着近来发布的 JSFUnit 和其它一些 JSF 测试框架,如 Shale Test JSF Extensions 而改变了。这些测试框架支持对 web 应用的客户端和服务器端组件的白盒测试。并且,一些项目,如 Eclipse Web Tools Platform (WTP) 和 JXInsight 已开始协助 JSF 应用的开发和测试了。

与其它的单元测试框架一样,一个典型的 JSF 测试框架需要具备以下特性:

  • 可测试完整的 HTTP 请求-响应生命周期。

测试框架还需支持 JSF 的特定需求,如:

  • 在测试方法中调用 JSF API,而不是检查 HTML 输出或客户端 DOM 对象。
  • 通过验证用户在表单上的输入和访问正确的页面视图来导航测试。
  • 验证 action 是否按预期执行,以及错误情况是否显示预期的错误消息。
  • 即使 rendered 属性被设置为假(组件不在 web 浏览器上渲染但仍在服务器端保存状态)时依然可以验证 JSF 组件。
  • 验证 XML 配置文件 (faces-config.xml 等) 是否被正确加载。

测试框架

JSFUnit 构建在 HttpUnit 和 Apache Cactus 之上,允许 JSF 应用和 JSF AJAX 组件的综合测试和调试。它可以在同一个测试类里测试 JSF 产品的客户端和服务器端。有了 JSFUnit API,测试类方法可以提交表单数据,并且验证管理的 bean 是否被正确更新。

JSFUnit 包括一个 JSF 静态分析测试套件用来验证 JSF 配置文件,以确保在运行时产生问题之前就能识别出任何与配置相关的问题。它还提供了 JSFTimer 组件来执行 JSF 生命周期的性能分析。它可被应用于跟踪 JSF 生命周期的每个阶段对于一个指定的 web 请求的响应时间,并断言该响应时间在 SLA 限定之内。

JSFUnit 支持 RichFaces Ajax4jsf 组件。此框架的 Beta 1 版本在上月发布,第二 Beta 版本计划在下个月末发布。

Shale 测试框架作为一个 Apache 项目,提供了对 Servlet 和 JSF 组件的 mock 对象实现。这些基础的测试类可应用于测试 Shale 框架类以及构建于该框架之上的 JSF 应用组件。Shale 测试可用于编写独立的单元测试来运行 ViewController 接口暴露的方法。因为为一个 ViewController 组件搭建运行环境很复杂,所以 Shale 测试是很有用的。以下是 Shale 测试框架的主要类:

Shale 测试还与 Spring 框架进行了集成,允许 JSF 组件被绑定为管理 bean 或 Spring bean。

JSF Extensions 项目是一个无 UI 组件的集合,它扩展了基于 JSF 1.2 的 web 应用的功能。它使用 JUnit ,HTMLUnit 和 Cactus 进行自动测试。框架的 Test-Time 模块为 JSF 1.2 提供 mock 对象。Design-Time 模块具有 JSF 热部署功能,能停止和重启应用而无需经历构建和重部署周期。这个基于 JSF PhaseListener 接口的特性会使得所有的配置文件和类被重载。这些使得开发者能在编写 JSF 应用时遵循一种测试驱动迭代 JSF 开发方式。

工具

还有一些开发工具也辅助 JSF 应用的开发和性能检测。 JInspired 组的 JXInsight 提供了 JSF 跟踪和性能检测特性,该特性基于 PhaseListener 接口。在 JSF 应用中使用这个跟踪监听器,开发者和 web 管理员可以对于一个 JSF 请求收集到例如跟踪栈、java 调用栈和运行时 UIComponent 的层次关系等信息。

Eclipse WTP 项目里的 JSF 工具的子项目还提供了支持开发和部署基于 JSF 的 web 应用的工具,如 Visual JSF Page Editor 和 Faces Config Editor。

查看英文原文 JSF Testing Tools

2008-01-03 04:341340
用户头像

发布了 47 篇内容, 共 11.7 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

不会还有人不知道,面试靠这1700道java面试八股文题库就能杀进大厂吧

程序知音

Java java面试 java架构 后端技术 Java面试八股文

又一创新!阿里云 Serverless 调度论文被云计算顶会 ACM SoCC 收录

阿里巴巴云原生

阿里云 Serverless 云原生

小间距LED显示屏既是机遇也是挑战

Dylan

LED显示屏 全彩LED显示屏 led显示屏厂家

java培训程序员失业后的发展方向

小谷哥

如何通过前端培训成为合格的程序员

小谷哥

java培训学习过程中需要什么方法?

小谷哥

Spring Boot 3.0 正式发布,这份升级指南必须码住

程序知音

Java spring 微服务 springboot 后端技术

音频“黑科技”上新,华为云会议让“云端”声音更真切!

爱尚科技

信息论与编码:信道的定义和分类

timerring

11月月更 信息论 信道

linux高可用软件有哪些?重点推荐哪款?

行云管家

高可用 双机热备

从零开始学Java系列之Java是什么?它到底是个啥?

千锋IT教育

又一巅峰神作!14年工作经验大咖出品“JVM&G1 GC深入学习手册”

钟奕礼

Java java面试 java编程 程序员‘

新鲜出炉|基于深度学习的运维日志领域新进展

云智慧AIOps社区

人工智能 深度学习 日志分析 日志管理 运维管理

大数据培训学习方法有哪些

小谷哥

阿里云与信通院邀您参与云原生安全用户调研

阿里巴巴云原生

阿里云 云原生

前端培训学习,就业前景怎么样

小谷哥

【计算讲谈社】第十三讲|未来40年,“碳中和”可能带来哪些深远影响?

大咖说

碳中和

进腾讯了!全靠着这两份近千页的Redis+Netty技术笔记

小小怪下士

Java redis 程序员 面试 Netty

使用RPA机器人快速实现表格数据汇总

YonBuilder低代码开发平台

开发者

互联网大厂必问之MySQL、Redis、Spring三大块,面试必备技术栈

钟奕礼

Java java面试 java编程 程序员‘

个推TechDay直播回顾 | 详解数据指标体系设计与开发全流程(附视频及课件下载)

个推

数据运营 指标预测 数据指标体系

ThreadPool的线程开启、线程等待、线程池的设置、定时功能

C++后台开发

线程 线程池 后端开发 C++开发 ThreadPool

宜昌市委书记王立调研数字经济发展并莅临升哲科技

SENSORO

Spring Boot 3.0 正式发布,这份升级指南必须码住

程序知音

Java spring 微服务 springboot 后端技术

Python太难懂?火山引擎数智平台这款产品可以了解一下

字节跳动数据平台

Python 大数据 数据分析

我从外包辞职了,10000小时后,走进字节跳动拿了offer

钟奕礼

Java java面试 java编程 程序员‘

适用更多会议场景,华为云会议的分组讨论功能来了!

IT科技苏辞

华为云开发者官网首页焕新升级,赋能开发者云上成长

华为云开发者联盟

华为云

华为云会议网络研讨会,按次订购更方便!

清欢科技

先到先得!阿里淘系内传322页Java并发编程核心讲义学习笔记

钟奕礼

Java java面试 java编程 程序员 java

数据技术前沿趋势、TiDB 产品方向、真实场景 Demo… 丨PingCAP DevCon 2022 产品技术论坛预览

PingCAP

TiDB

JSF Testing Tools_Java_Srini Penchikala_InfoQ精选文章