ssh2 action测试

1,项目中用的Maven做项目管理工具,在pom.xml中的必须配置如下:
	<dependency>
		<groupId>javax.servlet</groupId>
		<artifactId>jsp-api</artifactId>
		<version>2.0</version>
		<scope>test</scope>
	</dependency>
	<dependency>
		<groupId>org.apache.struts</groupId>
		<artifactId>struts2-junit-plugin</artifactId>
		<version>2.1.8.1</version>
		<scope>test</scope>
	</dependency>
这个是使用struts2-junit-plugin插件中必须的,当然我说的是ssh2的项目,肯定也少不了struts2-spring-plugin.jar的依赖了,如下:
	<dependency>
		<groupId>org.apache.struts</groupId>
		<artifactId>struts2-spring-plugin</artifactId>
		<version>2.1.8.1</version>
	</dependency>
2,struts.xml中的配置(简单的贴一下):
	<action name="person_*" class="personAction" method="{1}">
		<result name="adminLoginSuccess">/admin_index.jsp</result>
		<result name="personLoginSuccess">/go_person_index.jsp</result>
		。。。。
	</action>

3,application-action.xml中的配置如下:
	<bean id="personAction" class="com.woyo.action.PersonAction">
		<property name="personBo" ref="personBo"></property>
		<property name="adminBo" ref="adminBo"></property>
		<property name="groupBo" ref="groupBo"></property>
		。。。配置你的bo层
	</bean>
4,在PersonAction中:
	
public class PersonAction extends BaseAction implements ModelDriven<Person>,Preparable{
	
	private static final long serialVersionUID = 1L;
	private PersonBO personBo;
	private AdminBO adminBo;
	private GroupBO  groupBo;
	。。。其他的就不写了,还有getter和setter
	public String login(){
		if(type==1){
			Person p =personBo.findByName(name);
			if(p!=null){
				if(this.password.equals(p.getPassword())){
					ServletActionContext.getRequest().getSession().setAttribute("loginPerson", p);
					//ActionContext.getContext().getSession().put("loginPerson", p);
					return "personLoginSuccess";
				}
			}else{
				this.setMessage("用户名和密码不正确!");
			}
		}else{
			Admin admin=adminBo.findByName(name);
			if(admin!=null){
				if(this.password.equals(admin.getPassword())){
					ServletActionContext.getRequest().getSession().setAttribute("loginAdmin", admin);
					//context.getContext().getSession().put("loginAdmin", admin);
					return "adminLoginSuccess";
				}
			}else{
				this.setMessage("管理员用户名或者密码不正确!");
			}
		}
		return "login";
	}
	什么是PersonAction的代码,你也看到了,我有个注释的一行,//ActionContext.getContext().getSession().put("loginPerson", p);就是它
	单元测试的时候这个ActionContext.getContext().getSession()老返回为null
       就改用这个ServletActionContext.getRequest().getSession().setAttribute("loginPerson", p)了。

5,在PersonActionTest中:
	public class PersonActionTest extends StrutsSpringTestCase {

	private PersonAction personAction;
	private PersonBO personBo;
	private AdminBO adminBo;
	private GroupBO groupBo;
	private HttpSession session;
	/**
	 * 默认查找classpath下的applicationContext.xml文件
	 * 下面的这个重写方法可以不写
	 */
	protected String getContextLocations() {
		return "file:src/main/resources/applicationContext.xml";
	}

	public void testLogin() {
		//从applicationContext中取得实体对象
		personBo =(PersonBO)applicationContext.getBean("personBo");
		adminBo=(AdminBO)applicationContext.getBean("adminBo");
		groupBo=(GroupBO)applicationContext.getBean("groupBo");
		//从struts2的配置文件中取得的实例
		ActionProxy proxy = getActionProxy("/person/person_login.action");
		personAction = (PersonAction) proxy.getAction();
		int type=2;
		if(type==1){
			//测试person的登陆
			personAction.setName("bill");
			personAction.setPassword("pass");
			personAction.setType(type);
			String result=personAction.login();
			PersonActionTest.assertEquals("personLoginSuccess", result);
		}else{
			//测试admin的登陆
			personAction.setType(type);
			personAction.setName("admin");
			personAction.setPassword("pass");
			String result=personAction.login();
			PersonActionTest.assertEquals("adminLoginSuccess", result);
		}
    	
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值