写点什么

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:341133
用户头像

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

关注

评论

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

企业、政府单位及公共组织办会,一键高效合规直达酒店!

用友BIP

企业数智化

WorkPlus移动数字化平台高定制化服务,贴身满足企业的个性化需求

WorkPlus

BI 数据可视化平台建设(2)—筛选器组件升级实践

vivo互联网技术

设计模式 前端组件设计 组件库开发

实时化与Serverless是开源大数据3.0时代的必然选择

阿里云大数据AI技术

开源

对话在行人|新漢智能:基于用友BIP共创智能解决方案,使能中企全球化

用友BIP

数智化领先实践 中企全球化

推荐一个适合小公司的自动化部署脚本

秃头小帅oi

程序员 自动化部署

第五期 |《实时洞察 智能运营一用友企业绩效管理白皮书》解读

用友BIP

企业绩效

理解技术和业务的共同目标

老张

质量保障 业务目标 技术目标

苹果超好用的Markdown文本编辑器:Ulysses for Mac最新激活 支持M1

彩云

文本编辑器 Ulysses

云渲染的“公”“私”技术!

Finovy Cloud

渲染 云渲染 元宇宙 云渲染农场 动画制作

浅谈仓储UI自动化之路 | 京东物流技术团队

京东科技开发者

测试 自动化测试 UI自动化测试 企业号11月PK榜

通过Python脚本支持OC代码重构实践(三):数据项使用模块接入数据通路的适配

百度Geek说

Python 自动化 重构 脚本 企业号11月PK榜

WorkPlus移动数字化平台,助力企业全面掌控业务和生态

WorkPlus

在HarmonyOS上使用ArkUI实现计步器应用

HarmonyOS开发者

HarmonyOS

数据库分类有哪些?

小齐写代码

火山引擎ByteHouse:4000字总结,Serverless在OLAP领域应用的五点思考

字节跳动数据平台

数据库 大数据 云原生

Sonoma Cache Cleaner for Mac 苹果系统优化工具

彩云

Sonoma Cache Cleaner 系统优化工具

软件测试/测试开发丨掌握未来,引领人工智能测试新潮流!

测试人

人工智能 软件测试

QCN9024 vs. QCN9274: Performance comparison of wireless network chips

wifi6-yiyi

QCN9024 qcn9274

避免defer陷阱:拆解延迟语句,掌握正确使用方法

王中阳Go

Go golang 进阶 面试题 defer

走进中国近代工业摇篮,探索业财融合领先实践

用友BIP

业财融合

为React Ant-Design Table增加字段设置 | 京东云技术团队

京东科技开发者

前端 React Ant Design 企业号11月PK榜 前端组件

Macos鼠标右键助手专业版:MouseBoost PRO for Mac 支持M1

iMac小白

2024上海国际智能驾驶技术展览会

AIOTE智博会

自动驾驶展 智能驾驶展

promise时效架构升级方案的实施及落地 | 京东物流技术团队

京东科技开发者

架构 重构 Promise 架构升级 企业号11月PK榜

【2023云栖】刘一鸣:Data+AI时代大数据平台建设的思考与发布

阿里云大数据AI技术

大数据

【软件推荐】行云管家让你轻松实现数据安全运维!

行云管家

数据安全 数据泄露 数据安全运维

提效神器!10%标注数据,比肩全量标注的模型效果!

飞桨PaddlePaddle

大模型 半监督 自动标注 模型蒸馏

服务器硬盘选机械还是固态

Geek_f19a80

服务商

用友与清华合力赋能,提升大型企业数智化领导力!

用友BIP

企业数智化

JSF Testing Tools_Java_Srini Penchikala_InfoQ精选文章