JUnit学习笔记16 用JSP和taglib进行单元测试3
用mock objects对taglib进行单元测试 因为JSP不是纯粹的java代码,所以,使用mock进行测试是行不通的,但是,taglib却是纯粹的java代码,可以测试,但是它也有麻烦的地方,我们要为抽象的java类的PageContext创建mocks。 在前面,我们曾学习了使用EasyMock和DynaMock的框架来创建mock,但是,他们使用的是Dynamic Proxy特性,他们只能为接口产生代理,不能用于类。这次,我们使用MockMaker。 安装插件的地址是http://mockmaker.org/ 安装的方法简单,Google!下面仅学习一下用法。 在要mock的类上右键,选择MockMaker—>select package 这样就在你选择的位置生成了mock程序。 现在让我们为DynaPropertiesTag类写一个mock测试程序。 package junitbook.pages;
import junit.framework.TestCase;
import org.apache.commons.beanutils.DynaBean;
import org.apache.commons.beanutils.DynaProperty;
import org.apache.commons.beanutils.BasicDynaClass;
import javax.servlet.jsp.tagext.Tag;
public class TestDynaPropertiesMO extends TestCase
{
private DynaPropertiesTag tag;
private MockPageContext mockPageContext;
private DynaBean createDynaBean() throws Exception
{
DynaProperty[] props = new DynaProperty[] {
new DynaProperty("id", String.class),
new DynaProperty("responsetime", Long.class)
};
BasicDynaClass dynaClass = new BasicDynaClass("requesttime",
null, props);
DynaBean bean = dynaClass.newInstance();
bean.set("id", "12345");
bean.set("responsetime", new Long(500));
return bean;
}
protected void setUp()
{
tag = new DynaPropertiesTag();
mockPageContext = new MockPageContext();
tag.setPageContext(mockPageContext);
}
public void testDoStartTag() throws Exception
{
DynaBean bean = createDynaBean();
mockPageContext.setupFindAttribute(bean);
mockPageContext.addExpectedFindAttributeValues("item");
mockPageContext.addExpectedSetAttributeStringObjectValues(
相关文档:
我们都知道在jsp中include有两种形式,分别是
< %@ include file=” ”% >
< jsp:include page=” ” flush=”true”/ >
前者是指令元素、后者是行为元素。
具体它们将在何处用?如何用及它们有什么区别?这应该是很多人看到它都会想到的问题。下面一起来看看吧。
通常 ......
一、上传
引入包:org.apache.commons.fileupload.*
jsp代码: DiskFileUpload fu = new DiskFileUpload();
List list = fu.parseRequest(request);
if(list != null){
System.out.println(list.size());
  ......
response.setContentType( "application/pdf" ); // MIME type for pdf doc
response.setHeader("Content-Disposition","attachment;filename=output.pdf;");
Sets the Content-Type header. Content-Type identifies the MIME type of the response document and the character set encoding.
To se ......
下载后导入项目到 MyEclipse , 然后修改数据库连接参数即可测试. 我这用的是 MySQL 数据库. 用 JSP 是因为 Hibernate 可以配合各种框架, 因此在代码里我已经尽量的把页面和后台的直接变量耦合分隔开了.
hibernate_page.zip 433KB
部分代码显示:
相关 SQL:
CREATE TABLE `user` (
`id` int(11) NOT NULL,
`u ......
练琴的时候把RIFF叫做一个曲子的小片段,那么我自己定义一下程序的RIFF就是一小段程序吧,放一些这几天自己写的,以后也长期更新,作为自己积累和今后编程的参考。
1. 格式化网址,若没有HTTP头则插入HTTP头
<?php
//add http head to url
function AddHttpHead( &$s )
{
$exist = strstr( $s,"http://" ......