JUnit学习笔记15 对JSP和taglib进行单元测试2
使用Cactus对taglib进行单元测试 下图描述了使用Cactus对标记库的一个标记进行单元测试的过程。(图片链接) 1.Cactus对象初始化测试类,该类必须派生自JspTestCase类,测试标记时所需要的任何HTTP参数,都需要在beginXXX方法中进行配置。例如,如果某标记从Http参数提取信息,那么你需要在beginXXX方法中定义该参数。 2.在内部,Cactus的JspTestCase类调用Cactus JSP Redirector(本身也是一个JSP)。JSP Redirector负责在服务器端初始化JspTestCase类,传送JSP隐式对象(主要是PageContext对象)给它。然后,再调用testXXX方法。 3.在testXXX方法中,编写代码对JSP标记进行单元测试。测试一个标记的典型步骤为:用new 对象初始化该标记,调用setPageContext,来设置PageContext,调用测试方法进行测试,然后执行服务端的断言。例如,如果该标记在HTTP段中设置了一些对象,你就可以断言在那里。 4.Cactus JSP Redirector将标记的输出通过HTTP响应返回到客户端。然后在JspTestCase类编写一个endXXX方法来断言标记的输出。Cactus提供了同HttpUnit的紧密集成,它将允许你对返回的标记内容定义精确的断言。 定义自定义标记 在结果视图中,我们使用的第一个标记类将是DynaPropertiesTag。这个标记从DynaBean对象中取出所用的属性放到一个数组里。这些属性都是DynaProperty的对象,存放在PageContext中的一个连接到标记的目录下。下面是该标记的用法:
其中properties表示DynaProperty对象数组的变量名,dynaBean是用来获取属性信息的DynaBean实例。
DynaProoertiesTag如下:
package junitbook.pages;
import org.apache.commons.beanutils.DynaBean;
import org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager;
import javax.servlet.jsp.tagext.TagSupport;
import javax.servlet.jsp.JspException;
public class DynaPropertiesTag extends TagSupport
{
private String varName;
private String item;
public void setVar(String varName)
{
this.varName = varName;
}
public String getVar()
{
return this.varName;
}
public void setItem(String item)
{
this.item = item;
}
public String getItem()
{
return this.item;
}
public int doStartTag() throws JspException
{
相关文档:
建立自已的web目录
可以将JSP页面程序部署在Tomcat服务器的默认web目录下,也可以部署在自已创建的web目录下。下面是创建web目录的步骤:
1).在服务器上创建自已的目录
如,创建一目录: E:\test\10
2).配置web目录
用记事本打开 \Tomcat 5.0\conf目录下的文件s ......
因为要实现一个WebServer,写完了一个简单的WebServer后突发奇想,何不实现一个JSP 的WebServer呢?
有了这个想法后,就开始考虑JSP的实现原理,其实JSP的实现也很简单,说白了就是将其转换成一个Java文件,再对这个Java文件进行编译,生成类文件,接着再由服务器使用这个类文件。从总体上分,可以将JSP文件的内容划分为两 ......
引用自: http://hi.baidu.com/tickwudi/blog/item/1c0ddb6dd4e821fc4316949b.html
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort ......
下载后导入项目到 MyEclipse , 然后修改数据库连接参数即可测试. 我这用的是 MySQL 数据库. 用 JSP 是因为 Hibernate 可以配合各种框架, 因此在代码里我已经尽量的把页面和后台的直接变量耦合分隔开了.
hibernate_page.zip 433KB
部分代码显示:
相关 SQL:
CREATE TABLE `user` (
`id` int(11) NOT NULL,
`u ......