《HarmonyOS:领航者说》技术公开课来啦,大咖分享、实战解码,不容错过 了解详情
写点什么

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

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

关注

评论

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

在线图片坐标拾取工具

入门小站

WWDC21 给开发者最重要的7条新信息

阿里巴巴大淘宝技术

开发者 WWDC21

搭建Prometheus+Grafana的云平台监控系统

学神来啦

云计算 Linux 运维 开发日志

Flink User-Defined Source

Alex🐒

flink 翻译 Flink扩展 flink1.13

80后自立门户,90后异军突起,中国投资新势力加速崛起 | 创业邦2021年40位40岁以下投资人重磅发布

创业邦

创业

专科小伙豪取三杀,斩获阿里、京东和蚂蚁Java岗offer的原因找到了!

北游学Java

Java 面试

🌏【架构师指南】分布式技术知识点总结(下)

码界西柚

分布式 架构设计 6月日更

细细阅读,3张图带你理解,零拷贝,mmap和sendFile

奔着腾讯去

c++ Linux Mmap C++后台开发 网络io

必须加强对电商促销节的监管:保障普通消费者合法权益

石头IT视角

阿里云边缘容器服务ACK@Edge 通过33项测评,拿到“2021云边协同能力认证”

阿里巴巴中间件

分布式能解决一切问题吗?百度架构师为你解答架构真正奥义!

Java架构师迁哥

2021年5月云主机性能评测报告出炉,华为云跃居榜首

博睿数据

云主机 博睿数据 博睿指数

BoCloud博云稳居中国容器软件市场份额TOP 5

BoCloud博云

容器

星环科技TDH8.0使用必读2: 10种数据模型全支持 未来属于多模型大数据平台

星环科技

大数据 边缘计算 知识图谱 数据管理平台 多模型数据

深入浅出 LVS 负载均衡(三)实操 NAT、DR 模型

UCloud技术

网易有道开源EMLL:高性能端侧机器学习计算库,大幅提高计算性能

有道技术团队

人工智能 机器学习 高性能计算 端侧AI

2021年版,拼多多/阿里/今日头条/京东 Java面经大合集(含答案)

Java架构师迁哥

关于Redis分布式锁的那些事

Hex

redis 后端

终端架构深研,CodeDay 成都站等你

蚂蚁集团移动开发平台 mPaaS

flutter mPaaS Codeday Meetup

WebRTC学习—WebRTC详解

Linux服务器开发

音视频 WebRTC ffmpeg SRS流媒体服务器

16倍效率提升体验,博睿数据APM成企业运维超级加速器

博睿数据

APM 博睿数据 数据链DNA

iOS开发21年6月面试总结(未完待续~)

iOSer

ios 面试 ios开发 iOS 知识体系

数据库设计的 10 个最佳实践

xcbeyond

数据库 数据库设计 6月日更

阿里云中间件首席架构师李小平:企业为什么需要云原生?

阿里巴巴中间件

百度智能云NIRO MAX机器人,打造智慧党建新体验!

百度大脑

人工智能 百度 机器人

C#开发之基于NPOI的操作Excel开发体验

吴脑的键客

C# Excel

WebRTC 传输安全机制第二话:深入显出 SRTP 协议

阿里云CloudImagine

音视频 WebRTC 通信 流媒体开发 SRS流媒体服务器

《转》HttpURLConnection自动重试机制

hasWhere

一体化、标准化、可视化数据平台,博睿数据领跑智能运维新典范

博睿数据

博睿数据 数据链DNA dataview

第六课作业

杰语

移动开发iOS,薪资如何?待遇怎样!

ios开发 iOS 知识体系

JSF Testing Tools_Java_Srini Penchikala_InfoQ精选文章