`
lestang
  • 浏览: 39732 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

StrutsTestCase 的 MockStrutsTestCase 和 CactusStruts

    博客分类:
  • SSH
阅读更多
TestCactusLoginAction .java 
//  StrutsTestCase - a JUnit extension for testing Struts actions
//  within the context of the ActionServlet.
//  Copyright (C) 2002 Deryl Seale
//
//  This library is free software; you can redistribute it and/or
//  modify it under the terms of the Apache Software License as
//  published by the Apache Software Foundation; either version 1.1
//  of the License, or (at your option) any later version.
//
//  This library is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//  Apache Software Foundation Licens for more details.
//
//  You may view the full text here: http://www.apache.org/LICENSE.txt

package examples.cactus;

import java.io.File;

import servletunit.struts.CactusStrutsTestCase;

public class TestCactusLoginAction extends CactusStrutsTestCase {

	public TestCactusLoginAction(String testName) {
		super(testName);
	}

	public void setUp() throws Exception {
		super.setUp();
		setInitParameter("validating", "false"); //添加
		this.setConfigFile("/WEB-INF/struts-config.xml");//添加
	}

	public void testSuccessfulLogin() {
		addRequestParameter("username", "deryl");
		addRequestParameter("password", "radar");
		setRequestPathInfo("/login");
		actionPerform();
		verifyForward("success");
		verifyForwardPath("/main/success.jsp");
		assertEquals("deryl", getSession().getAttribute("authentication"));
		verifyNoActionErrors();
	}

	public void testFailedLogin() {

		setConfigFile("/WEB-INF/struts-config.xml");
		addRequestParameter("username", "deryl");
		addRequestParameter("password", "express");
		setRequestPathInfo("/login.do");
		actionPerform();
		verifyForward("login");
		verifyForwardPath("/login/login.jsp");
		verifyInputForward();
		verifyActionErrors(new String[] { "error.password.mismatch" });
		assertNull(getSession().getAttribute("authentication"));
	}

	public static void main(String[] args) {
		junit.textui.TestRunner.run(TestCactusLoginAction.class);
	}

}

 MockStrutsTestCase

 

//  StrutsTestCase - a JUnit extension for testing Struts actions
//  within the context of the ActionServlet.
//  Copyright (C) 2002 Deryl Seale
//
//  This library is free software; you can redistribute it and/or
//  modify it under the terms of the Apache Software License as
//  published by the Apache Software Foundation; either version 1.1
//  of the License, or (at your option) any later version.
//
//  This library is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//  Apache Software Foundation Licens for more details.
//
//  You may view the full text here: http://www.apache.org/LICENSE.txt

package examples;

import java.io.File;

import servletunit.struts.MockStrutsTestCase;

public class TestLoginAction extends MockStrutsTestCase {

	public TestLoginAction(String testName) {
		super(testName);
	}

	public void setUp() throws Exception {
		super.setUp();
		setInitParameter("validating", "false");
		//找到WebRoot和配置文件
		setContextDirectory(new File("WebRoot"));
		this.setConfigFile("/WEB-INF/struts-config.xml");
	}

	public void testSuccessfulLogin() {
		setRequestPathInfo("/login");
		addRequestParameter("username", "deryl");
		addRequestParameter("password", "radar");
		actionPerform();
		verifyForward("success");
		assertEquals("deryl", (String) getSession().getAttribute(
				"authentication"));
		verifyNoActionErrors();

	}

	public void testFailedLogin() {
		setConfigFile("/WEB-INF/struts-config.xml");
		addRequestParameter("username", "deryl");
		addRequestParameter("password", "express");
		setRequestPathInfo("/login");
		actionPerform();
		verifyForward("login");
		verifyForwardPath("/login/login.jsp");
		verifyInputForward();
		verifyActionErrors(new String[] { "error.password.mismatch" });
		assertNull(getSession().getAttribute("authentication"));
	}

	public static void main(String[] args) {
		junit.textui.TestRunner.run(TestLoginAction.class);
	}

}

 

分享到:
评论

相关推荐

    StrutsTestCase工程例子

    这个工程例子是基于StrutsTestCase的,它提供了实际操作和理解StrutsTestCase如何工作的实例。 在Struts应用程序中,Action类是处理用户请求的核心组件,通常负责业务逻辑的调用和视图的转发。然而,由于Struts的...

    StrutsTestCase-2.1.4(含文档、源码、官方示例).rar

    StrutsTestCase是Apache Struts框架的一个扩展,它提供了一种集成测试工具,使得开发者能够方便地对基于Struts的应用程序进行单元测试和功能测试。这个压缩包“StrutsTestCase-2.1.4(含文档、源码、官方示例).rar...

    strutsTestCase所需要用到的jar

    strutsTestCase所需要用到的jar org.springframework.core-3.1.2.RELEASE.jar spring-test.jar struts2-junit-plugin-2.3.16.3.jar xmlbeans-2.3.0.jar xmlpull-1.1.3.1.jar xstream-1.4.2.jar xwork-core-2.3.16.3....

    Spring整合Struts

    因为StrutsTestCase的MockStrutsTestCase不会在启动时初始化监听器,所以将所有上下文文件放置在插件中是一种变通方法。 配置完插件后,就可以让Spring管理你的Action了。Spring1.1.3提供了两种方式: 1. 覆盖...

    Jakarta Struts Live

    - **使用StrutsTestCase测试Action**:介绍了如何使用StrutsTestCase测试框架来模拟HTTP请求和响应,以便更全面地测试Action的行为。 - **使用StrutsTestCase(Mock Mode)逐步操作**:给出了使用Mock模式下的...

    Checked and Unchecked Exception

    在Java编程语言中,异常处理是一项关键特性,用于在程序执行过程中捕获并处理错误或非正常情况。...在使用StrutsTestCase或其他工具进行开发和测试时,正确处理这两类异常是确保代码质量、提高软件可靠性的重要手段。

    Struts的高级应用

    4. **StrutsTestCase**:StrutsTestCase是Struts提供的一个单元测试框架,它允许开发者对ActionForm、Action和ActionForward进行测试,确保这些组件在实际运行前功能正确。使用StrutsTestCase,可以编写模拟HTTP请求...

    精通struts:基于mvc的java web设计与开发part3

    Struts是目前非常流行的基于MVC的Java Web框架。...第19章到第21章介绍了如何采用第三方软件,如Apache Common Logging API、Log4J、ANT和StrutsTestCase,来控制Struts应用的输出日志、管理以及测试Struts应用项目。

    精通Struts基于MVC的Java Web设计与开发 孙卫琴 光盘

    内容推荐 Struts是目前非常流行的基于MVC的Java ...第19章到第21章介绍了如何采用第三方软件,如Apache Common Logging API、Log4J、ANT和StrutsTestCase,来控制Struts应用的输出日志、管理以及测试Struts应用项目。

    精通 Struts:基于 MVC 的 JavaWeb 设计与开发(PDF)

    Struts是目前非常流行的基于MVC的Java Web框架。...第19章到第21章介绍了如何采用第三方软件,如Apache Common Logging API、Log4J、ANT和StrutsTestCase,来控制Struts应用的输出日志、管理以及测试Struts应用项目。

    基于MVC的java Web设计与开发

    Struts是目前非常流行的基于MVC的Java Web框架。...第19章到第21章介绍了如何采用第三方软件,如Apache Common Logging API、Log4J、ANT和StrutsTestCase,来控制Struts应用的输出日志、管理以及测试Struts应用项目。

    精通Struts_基于MVC的Java Web设计与开发

    Struts是目前非常流行的基于MVC的Java Web框架。...第19章到第21章介绍了如何采用第三方软件,如Apache Common Logging API、Log4J、ANT和StrutsTestCase,来控制Struts应用的输出日志、管理以及测试Struts应用项目。

    精通struts:基于mvc的java web设计与开发part2

    Struts是目前非常流行的基于MVC的Java Web框架。...第19章到第21章介绍了如何采用第三方软件,如Apache Common Logging API、Log4J、ANT和StrutsTestCase,来控制Struts应用的输出日志、管理以及测试Struts应用项目。

    JakartaStrutsLive

    本书由Richard Hightower撰写,于2004年由SourceBeat, LLC出版,旨在为读者提供全面深入的Struts框架理解和应用指导。以下是基于该书内容的关键知识点概览: ### Struts Quick Start Tutorial #### 下载Struts - *...

    精通struts:基于mvc的java web设计与开发part1

    第19章到第21章介绍了如何采用第三方软件,如Apache Common Logging API、Log4J、ANT和StrutsTestCase,来控制Struts应用的输出日志、管理以及测试Struts应用项目。 这个真的是包含所有的源码。。。

    Struts1和Struts2的区别和对比

    Struts1的Action由于暴露了Servlet API,测试需要在容器内进行,通常依赖于StrutsTestCase这样的工具。然而,Struts2的Action可以通过依赖注入轻松地进行单元测试,Action的属性可以被初始化和设置,使得测试更加...

    AppFuse Architecture

    5. **test**:包括JUnit、Cactus和StrutsTestCase测试用例,确保代码质量。 6. **tools**:包含辅助工具,如Strutsgen,用于从ActionForms生成JSP页面。 7. **web**:包含了JSP、属性文件、图片、脚本和样式表,这些...

    Struts2框架单元测试代码

    Struts2框架是一款广泛应用于Java Web开发中的开源MVC框架,它简化了Web应用程序的构建,使得业务逻辑、控制逻辑和视图层得以分离。单元测试对于任何软件项目都至关重要,因为它能确保代码的正确性,提高代码质量...

Global site tag (gtag.js) - Google Analytics