- 论坛徽章:
- 0
|
1.
为了使得项目的开发正规化,准备在3u的这个项目中使用专门的测试工具,经过多方面的比较,最后选择cactus,使用工具eclipse3.3+cactus+junit
还有就是这里的配置只是用于测试Servlet的,当然也可以用同样的方法配置其可以测试Filter,Jsp等,不过可能要换一个新一点的Cactus的包。
1.解压cactus安装文件到某一目录下
2.将lib下的jar拷贝到项目\web-inf\lib 下
3.创建cactus.properties文件,并加入classpath(可选,在这里是为为了可以直接用eclipse的junit进行测试,所以这里还是加上吧)
4.我需要被测试的类
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 { 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;
} } } 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 {
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.我的测试类
Java代码
![]()
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));
} } 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代码
![]()
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
A href="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" target=_blank>http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsdA>"> servlet>
servlet-name>ServletRedirectorservlet-name> servlet-class>org.apache.cactus.server.ServletTestRedirectorservlet-class> servlet>
servlet>
servlet-name>ServletTestRunnerservlet-name> servlet-class>org.apache.cactus.server.runner.ServletTestRunnerservlet-class> servlet>
servlet-mapping>
servlet-name>ServletRedirectorservlet-name> url-pattern>/ServletRedirectorurl-pattern> servlet-mapping>
servlet-mapping>
servlet-name>ServletTestRunnerservlet-name> url-pattern>/ServletTestRunnerurl-pattern> servlet-mapping> web-app>
ServletRedirector
org.apache.cactus.server.ServletTestRedirector
ServletTestRunner
org.apache.cactus.server.runner.ServletTestRunner
ServletRedirector
/ServletRedirector
ServletTestRunner
/ServletTestRunner
8.在cactus.properties需要如下配置
cactus.contextURL =
http://localhost/3UFAssist
cactus.servletRedirectorName =
ServletRedirector
cactus.enableLogging=true
9开始测试
输入以下http://localhost:8080/3UFAssist/ServletTestRunner?suite=com.test.LoginEdgeTest
//这里应该是把测试类当作一个suite传给TestRunner来运行,这跟平时用JUnit是一样的。
将出现测试结果:
Xml代码
![]()
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>
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/77127/showart_1309102.html |
|