51Testing软件测试论坛
标题:
利用cactus测试servlet的简单入门 -转贴
[打印本页]
作者:
sincky
时间:
2006-1-12 23:26
标题:
利用cactus测试servlet的简单入门 -转贴
为了使得项目的开发正规化,准备在3u的这个项目中使用专门的测试工具,经过多方面的比较,最后选择cactus,使用工具eclipse3.1.1+cactus+junit
1.解压cactus安装文件到某一目录下
2.将lib下的jar拷贝到项目\web-inf\lib 下
3.创建cactus.properties文件,并加入classpath(可选,在这里是为为了可以直接用eclipse的junit进行测试,可用eclipse配置路径)
4.我需要被测试的类
/*
* 创建日期 2005-12-9
*
* TODO 要更改此生成的文件的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
package com.test.web;
import java.io.FileNotFoundException;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
// import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.jdom.JDOMException;
// import com.ca.website.mainpage.MainPageSupport;
// import com.error.ErrorProcesser;
// import com.jem.orm.sql.BsSQLHandler;
// import com.jem.orm.sql.BsSqlXmlPaser;
import com.jem.transdata.BsFormData;
import com.jem.transdata.BsFormTable;
// import com.orm.util.SQLStatementIDS;
public class LoginEdge extends HttpServlet {
* 测试 by wst
* @param request
* @return
*/
public boolean isValidUser(HttpServletRequest request) {
String username = request.getParameter("username");
String password = request.getParameter("password");
if (username == null || password == null || !username.equals("justin")
|| !password.equals("123456")) {
return false;
} else {
return true;
}
}
}
6.我的测试类
/*
* 创建者 wst302
*
* 创建日期 2006-1-10
*
* 文档作用:测试登陆
*
* 版本:
*
*/
package com.test;
import org.apache.cactus.ServletTestCase;
import org.apache.cactus.WebRequest;
import com.test.web.LoginEdge;
public class LoginEdgeTest extends ServletTestCase {
public void beginValidUser(WebRequest webRequest) {
webRequest.addParameter("username", "justin");
webRequest.addParameter("password", "123456");
}
public void testValidUser() {
LoginEdge loginServlet = new LoginEdge();
assertTrue(loginServlet.isValidUser(request));
}
public void beginInValidUser(WebRequest webRequest) {
webRequest.addParameter("username", "guest");
webRequest.addParameter("password", "guest");
}
public void testInValidUser() {
LoginEdge loginServlet = new LoginEdge();
assertFalse(loginServlet.isValidUser(request));
}
}
7.在web.xml需要如下配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd
">
<servlet>
<servlet-name>ServletRedirector</servlet-name>
<servlet-class>org.apache.cactus.server.ServletTestRedirector</servlet-class>
</servlet>
<servlet>
<servlet-name>ServletTestRunner</servlet-name>
<servlet-class>org.apache.cactus.server.runner.ServletTestRunner</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletRedirector</servlet-name>
<url-pattern>/ServletRedirector</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ServletTestRunner</servlet-name>
<url-pattern>/ServletTestRunner</url-pattern>
</servlet-mapping>
<!--Test by wst -->
</web-app>
8.在cactus.properties需要如下配置
cactus.contextURL =
http://localhost/3UFAssist
cactus.servletRedirectorName = ServletRedirector
cactus.enableLogging=true
9开始测试
输入以下
http://localhost/3UFAssist/Servl ... .test.LoginEdgeTest
将出现测试结果:
<?xml version="1.0" encoding="UTF-8" ?>
- <testsuites>
- <testsuite name="com.test.LoginEdgeTest" tests="2" failures="0" errors="0" time="0.625">
<testcase name="testValidUser" time="0.5" />
<testcase name="testInValidUser" time="0.016" />
</testsuite>
</testsuites>
作者:
hai3qing
时间:
2006-5-30 14:01
晕, 为啥我按这做不行呢。
作者:
JPeanut
时间:
2006-6-11 16:43
呵呵,,感觉用cactus的话,,还是自己封装一下jetty,,比cactus更好用..
不过jetty不是junit的扩展,,要把juint集成进去,,的确比较困难,前一阵搞过这个集成的东东,,后来太忙了,工作中断了
[
本帖最后由 JPeanut 于 2006-6-11 16:44 编辑
]
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2