cactus java,Cactus测试Servlet

package com.jadyer.servlet;

import java.io.IOException;

import javax.servlet.ServletException;

import junit.framework.Assert;

import org.apache.cactus.ServletTestCase;

import org.apache.cactus.WebRequest;

import org.xml.sax.SAXException;

import com.meterware.httpunit.WebResponse;

/**

* ----------------------------------------------------------------------------------------------------

* 本类是一个继承了org.apache.cactus.ServletTestCase的类(它内部间接继承了junit.framework.TestCase)

* 这样此类便自动拥有了ServletAPI引用,比如要使用HttpSession就可以直接session.setAttribute()

* ----------------------------------------------------------------------------------------------------

* 它所依赖的基础jar,如下所示

* aspectjrt-1.5.3.jar

* cactus.core.framework.uberjar.javaEE.14-1.8.1.jar

* cactus.integration.ant-1.8.1.jar

* cactus.integration.shared.api-1.8.1.jar

* commons-codec-1.6.jar(需单独下载)

* commons-discovery-0.4.jar

* commons-httpclient-3.1.jar

* commons-logging-1.1.jar

* geronimo-j2ee-management_1.0_spec-1.1.jar

* httpunit-1.6.jar

* Tidy.jar或者nekoHTML.jar和xercesMinimal.jar(本例中的endDoGet()方法要用到)

* ----------------------------------------------------------------------------------------------------

* Tidy.jar需要单独下载

* nekoHTML.jar和xercesMinimal.jar均可从下载到的nekohtml-1.9.18.zip找到

* nekoHTML的下载地址为http://sourceforge.net/projects/nekohtml/files/

* ----------------------------------------------------------------------------------------------------

* Created by 玄玉 on 2013/07/11 10:49.

*/

public class LoginServletTest extends ServletTestCase {

private LoginServlet loginServlet;

//它是在ServerSide执行的

public void setUp(){

loginServlet = new LoginServlet();

}

//beginXxx()方法是在ClientSide执行的

//若想在testLogin()中获取到这里request添加的username参数,则该方法就应命名为beginLogin()

public void beginLogin(WebRequest request){

request.addParameter("username", "Jadyer");

}

//它是在ServerSide执行的

public void testLogin(){

//获取GET参数

Assert.assertEquals(request.getParameter("username"), "jadyer");

//登录失败

//session.setAttribute("loginUser", "玄玉");

Assert.assertFalse(loginServlet.login(request));

//登录成功

session.setAttribute("loginUser", "https://jadyer.cn/");

Assert.assertTrue(loginServlet.login(request));

}

//它是在ServerSide执行的

public void testDoGet() throws ServletException, IOException {

loginServlet.doGet(request, response);

}

//endXxx()方法是在ClientSide执行的,该方法对应testDoGet()

public void endDoGet(WebResponse resp) throws SAXException {

//这里使用com.meterware.httpunit.WebResponse,而非org.apache.cactus.WebResponse

//前者提供了很多增强功能(它要额外借助Tidy.jar或者nekoHTML.jar和xercesMinimal.jar作为辅助包)

Assert.assertEquals(resp.getTables()[0].getCellAsText(0,0), "username");

Assert.assertEquals(resp.getTables()[0].getCellAsText(0,1), "password");

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值