Seam的集成测试
Integration Testing
集成测试和单元测试一起使用。它应该测试单元的整合。实际上,大多数集成测试模拟客户端调用,因此,你可以有一个完整的功能测试,从表现层到业务逻辑层,再到持久层。
这些测试非常有用,能更深入开发,调整后端系统。它立即让你明白是否你在业务层所做的改变将影响Web页面中断。当然,这取决于你是否及时更新测试,一旦你更新了JSF页面,也应该对测试做相应更改。
要执行集成测试,应该使用TestNG和Seam基础类的组合来模拟Faces请求。此例还使用早先的单元测试的例子。集成测试运行来增加一个房子。
public class HouseTest extends SeamTest{
@Test
public void testAddHouse() throws Exception{
new FacesRequest(){
@Override
protected void processValidations() throws Exception {
validateValue("#{house.address}", "123 Main Street");
validateValue("#{house.city}", "Columbus");
validateValue("#{house.state}", "OH");
assert !isValidationFailure();
}
@Override
protected void updateModelValues() throws Exception {
setValue("#{house.address}", "123 Main Street");
setValue("#{house.city}", "Columbus");
setValue("#{house.state}", "OH");
}
@Override
protected void invokeApplication() {
assert invokeMethod("#{salesManager.addHouse}").equals("success");
}
@Override
protected void renderResponse() {
assert getValue("#{house.address}").equals("123 Main Street");
assert getValue("#{house.city}").equals("Columbus");
assert getValue("#{house.state}").equals("OH");
}
}.run();
}
}
第一件事是继承SeamTest,SeamTest类是Seam核心类的一部分。继承此类后,就可以使用两个核心操作创建一个请求。你可以使用超类来创建一个FacesRequest或者NonFacesRequest。这两个类是SeamTest对象的内部类,我们会创建类的实现通过重写方法调用。每个方法调用代表了JSF生命周期的一部分。可以拦截此方式,测试请求的各个部份。方法:
getViewId() JSF视图ID或非Faces请求的页面名
applyRequestValues() 应用请求值阶段定义JSF和组件页面的交互
processValidations() 处理验证阶段的方法
updateModelValues() 更新模型值阶段的方法
invokeApplication() 用于方法调用期间和重写方法
renderResponse() 呈现响应期间出现
你可以选择要覆盖的方法。在例子中,我们验证和设置值传递到业务层,在House对象设置值,验证项,然后提供House对象到数据库。
从长远看,测试能节省宝贵的时间。它帮助识别错误和应用程序异常行为,尤其是在大项目中,测试占了相当大比例的时间。
分享到:
相关推荐
seam carving 测试数据集免费分享
NULL 博文链接:https://yuexiangcheng007-sina-com.iteye.com/blog/444386
这是中文手册,Seam为持久化集成了JPA和Hibernate 3,为轻量化的异步性集成了EJB Timer Service和Quartz,为工作流集成了jBPM,为业务规则集成了JBoss规则,为电子邮件集成了Meldware Mail,为完整的文本搜索集成了...
seam_carving代码实现 图像缩放
CJ电子书系列(2) 网上一篇介绍JBoss Seam的好文《Seam-无缝集成JSF》,有人把它翻译成中文,我把它制作成PDF,希望更多的人能够读到更好的java 技术文章。
SeamCarving的C++实现代码,使用opencv库。包含完整项目工程及测试图像,可直接使用
seam in action seam in action seam in action seam in action seam in action seam in action seam in action
Seam 是一种业级 企 Java 的应规用程序框架。它的灵感源自下列原 : 只有一种“工具” Seam为 应 业务业业 义 种统 组 你的 用程序中所有的 定 了一 一的 件模型。 Seam组件可能是 态义 关关 态 有状 的,包含与几...
JBOSS_SEAM配置
而 Seam 是一个扩展 JSF 的强大的应用程序框架。在这个由三部分组成的新系列中的第一篇文章中,发现这两种框架之间的互补性。Dan Allen 介绍了 Seam 对 JSF 生命周期的增强,包括上下文状态管理、 RESTful URL、Ajax...
seam级联菜单例子
seam资料seam资料seam资料seam资料seam资料seam资料seam资料seam资料
JBoss Seam JBoss Seam JBoss Seam
seam介绍
seam carving的相关代码实现
seam下一代web开发框架
seam 中文文档 pdf 格式 JSF+EJB3.0快速开发框架Seam的中文版向导。。。
Jboss Seam in ActionJboss Seam in ActionJboss Seam in ActionJboss Seam in ActionJboss Seam in Action
Jboss Seam 一个深度集成框架中文书
1.1.3. 运行测试........................................................................................................................................................... 15 1.2. 第一个例子:注册示例....