Rya*_*yan 5 java jsf icefaces unit-testing
您是否可以分离IceFaces应用程序的组件,以便可以单独测试它们,而不是在组装的应用程序上使用Selenium或HttpUnit之类的东西?
支持bean可以很容易地隔离(如果编写为可测试的),但我有兴趣测试应用程序的模板/显示部分,同时尽可能少地使用应用程序的其余部分.可以这样做吗?怎么样?
有没有办法使用"虚拟数据"将IceFaces对象渲染为文本,然后我可以通过传统的单元测试运行?
我可以想办法做所有这些,但它们涉及创建多个应用程序(我希望测试的每个组件一个).然而,这似乎是一种次优的做事方式.
如果我正确理解您的问题,那么为您的页面创建特殊的虚拟支持 bean,然后创建一个测试 JSF 配置文件,将这些 bean 映射到 .jspx 文件,这应该是一个简单的问题。当然,虚拟 bean 不会触及任何业务逻辑或后端服务——它们只是简单的数据集,很容易在测试中验证。
创建一个 ant 脚本来替换您的虚拟支持 bean 和测试配置文件。运行您的测试。如果您不想要像 HTTPUnit 这样繁重的东西,并且您在应用程序中使用 Spring,请查看此博客文章,了解在没有 Web 服务器的情况下模拟完整 Web 上下文的绝佳方法。您的测试可能需要嗅探原始 HTML 输出来验证结果。这会很棘手,因为 IceFaces 喜欢修改 DIV ID 以及您可能想要嗅探的 DOM 树的其他相关部分。(仅此一点可能就是为什么很少有 JSF 开发人员尝试对 JSF 输出进行单元测试的原因。)
验证测试后,将常规 bean 和配置文件交换回应用程序。
瞧!您刚刚对 JSF 组件进行了单元测试。
请注意,交换 bean 和配置文件的整个过程很混乱。如果 IceFaces 使用 Spring 将支持 bean 与 JSF 页面相匹配,那么事情会容易得多——然后您可以简单地在 application.xml 中使用相关测试类定义测试 bean。但这就是生活。
祝你好运,让我知道你的效果如何!
| 归档时间: |
|
| 查看次数: |
1588 次 |
| 最近记录: |