`

单元测试怎样设值到session 中

阅读更多
单元测试怎样设值到session 中
这个问题纠结了会,找了个高手,终于解决了.
思路:构造context对象,并且构造request对象和session对象

TestRequest 就是构造的request 里面有TestSession

ExtHttpDoradoContext 继承HttpDoradoContext

A.注册context
TestRequest.registerDoradoContext();
A.1设置上下文环境
DoradoContext.registerContext(new ExtHttpDoradoContext());
A.1.1构造ExtHttpDoradoContext的时候,将TestRequest 实例设置给
context中的request对象

所以在工具类中能够娶到数据
HttpDoradoContext context = (HttpDoradoContext) DoradoContext.getContext();
return context.getRequest().getSession().getId();

/***============TestRequest 开始==================****/
package com.bstek.scm;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.security.Principal;
import java.util.Enumeration;
import java.util.Locale;
import java.util.Map;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletInputStream;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionContext;

import com.bstek.dorado.common.DoradoContext;
import com.bstek.dorado.common.ExtHttpDoradoContext;


public class TestRequest implements HttpServletRequest {

public static void registerDoradoContext(){
DoradoContext.registerContext(new ExtHttpDoradoContext());
}

public static void unregisterDoradoContext() {
DoradoContext.unregisterContext();
}

protected class TestSession implements HttpSession {

@Override
public Object getAttribute(String name) {
// TODO Auto-generated method stub
return null;
}

@Override
public Enumeration getAttributeNames() {
// TODO Auto-generated method stub
return null;
}

@Override
public long getCreationTime() {
// TODO Auto-generated method stub
return 0;
}

@Override
public String getId() {
return "test";
}

@Override
public long getLastAccessedTime() {
// TODO Auto-generated method stub
return 0;
}

@Override
public int getMaxInactiveInterval() {
// TODO Auto-generated method stub
return 0;
}

@Override
public ServletContext getServletContext() {
// TODO Auto-generated method stub
return null;
}

@Override
public HttpSessionContext getSessionContext() {
// TODO Auto-generated method stub
return null;
}

@Override
public Object getValue(String name) {
// TODO Auto-generated method stub
return null;
}

@Override
public String[] getValueNames() {
// TODO Auto-generated method stub
return null;
}

@Override
public void invalidate() {
// TODO Auto-generated method stub

}

@Override
public boolean isNew() {
// TODO Auto-generated method stub
return false;
}

@Override
public void putValue(String name, Object value) {
// TODO Auto-generated method stub

}

@Override
public void removeAttribute(String name) {
// TODO Auto-generated method stub

}

@Override
public void removeValue(String name) {
// TODO Auto-generated method stub

}

@Override
public void setAttribute(String name, Object value) {
// TODO Auto-generated method stub

}

@Override
public void setMaxInactiveInterval(int interval) {
// TODO Auto-generated method stub

}
}

private final TestSession session;

public TestRequest(){
session = new TestSession();
}

@Override
public String getAuthType() {
// TODO Auto-generated method stub
return null;
}

@Override
public String getContextPath() {
// TODO Auto-generated method stub
return null;
}

@Override
public Cookie[] getCookies() {
// TODO Auto-generated method stub
return null;
}

@Override
public long getDateHeader(String arg0) {
// TODO Auto-generated method stub
return 0;
}

@Override
public String getHeader(String arg0) {
// TODO Auto-generated method stub
return null;
}

@Override
public Enumeration getHeaderNames() {
// TODO Auto-generated method stub
return null;
}

@Override
public Enumeration getHeaders(String arg0) {
// TODO Auto-generated method stub
return null;
}

@Override
public int getIntHeader(String arg0) {
// TODO Auto-generated method stub
return 0;
}

@Override
public String getMethod() {
// TODO Auto-generated method stub
return null;
}

@Override
public String getPathInfo() {
// TODO Auto-generated method stub
return null;
}

@Override
public String getPathTranslated() {
// TODO Auto-generated method stub
return null;
}

@Override
public String getQueryString() {
// TODO Auto-generated method stub
return null;
}

@Override
public String getRemoteUser() {
// TODO Auto-generated method stub
return null;
}

@Override
public String getRequestURI() {
// TODO Auto-generated method stub
return null;
}

@Override
public StringBuffer getRequestURL() {
// TODO Auto-generated method stub
return null;
}

@Override
public String getRequestedSessionId() {
// TODO Auto-generated method stub
return null;
}

@Override
public String getServletPath() {
// TODO Auto-generated method stub
return null;
}

@Override
public HttpSession getSession() {
return session;
}

@Override
public HttpSession getSession(boolean arg0) {
return session;
}

@Override
public Principal getUserPrincipal() {
// TODO Auto-generated method stub
return null;
}

@Override
public boolean isRequestedSessionIdFromCookie() {
// TODO Auto-generated method stub
return false;
}

@Override
public boolean isRequestedSessionIdFromURL() {
// TODO Auto-generated method stub
return false;
}

@Override
public boolean isRequestedSessionIdFromUrl() {
// TODO Auto-generated method stub
return false;
}

@Override
public boolean isRequestedSessionIdValid() {
// TODO Auto-generated method stub
return false;
}

@Override
public boolean isUserInRole(String arg0) {
// TODO Auto-generated method stub
return false;
}

@Override
public Object getAttribute(String arg0) {
// TODO Auto-generated method stub
return null;
}

@Override
public Enumeration getAttributeNames() {
// TODO Auto-generated method stub
return null;
}

@Override
public String getCharacterEncoding() {
// TODO Auto-generated method stub
return null;
}

@Override
public int getContentLength() {
// TODO Auto-generated method stub
return 0;
}

@Override
public String getContentType() {
// TODO Auto-generated method stub
return null;
}

@Override
public ServletInputStream getInputStream() throws IOException {
// TODO Auto-generated method stub
return null;
}

@Override
public String getLocalAddr() {
// TODO Auto-generated method stub
return null;
}

@Override
public String getLocalName() {
// TODO Auto-generated method stub
return null;
}

@Override
public int getLocalPort() {
// TODO Auto-generated method stub
return 0;
}

@Override
public Locale getLocale() {
// TODO Auto-generated method stub
return null;
}

@Override
public Enumeration getLocales() {
// TODO Auto-generated method stub
return null;
}

@Override
public String getParameter(String arg0) {
// TODO Auto-generated method stub
return null;
}

@Override
public Map getParameterMap() {
// TODO Auto-generated method stub
return null;
}

@Override
public Enumeration getParameterNames() {
// TODO Auto-generated method stub
return null;
}

@Override
public String[] getParameterValues(String arg0) {
// TODO Auto-generated method stub
return null;
}

@Override
public String getProtocol() {
// TODO Auto-generated method stub
return null;
}

@Override
public BufferedReader getReader() throws IOException {
// TODO Auto-generated method stub
return null;
}

@Override
public String getRealPath(String arg0) {
// TODO Auto-generated method stub
return null;
}

@Override
public String getRemoteAddr() {
// TODO Auto-generated method stub
return null;
}

@Override
public String getRemoteHost() {
// TODO Auto-generated method stub
return null;
}

@Override
public int getRemotePort() {
// TODO Auto-generated method stub
return 0;
}

@Override
public RequestDispatcher getRequestDispatcher(String arg0) {
// TODO Auto-generated method stub
return null;
}

@Override
public String getScheme() {
// TODO Auto-generated method stub
return null;
}

@Override
public String getServerName() {
// TODO Auto-generated method stub
return null;
}

@Override
public int getServerPort() {
// TODO Auto-generated method stub
return 0;
}

@Override
public boolean isSecure() {
// TODO Auto-generated method stub
return false;
}

@Override
public void removeAttribute(String arg0) {
// TODO Auto-generated method stub

}

@Override
public void setAttribute(String arg0, Object arg1) {
// TODO Auto-generated method stub

}

@Override
public void setCharacterEncoding(String arg0) throws UnsupportedEncodingException {
// TODO Auto-generated method stub

}

}


/***============TestRequest 结束==================****/

/***============ExtHttpDoradoContext开始==============*****/
package com.bstek.dorado.common;

import javax.servlet.http.HttpServletRequest;

import com.bstek.scm.TestRequest;

public class ExtHttpDoradoContext extends HttpDoradoContext {

private final HttpServletRequest request;

public ExtHttpDoradoContext(){
request = new TestRequest();
}

public HttpServletRequest getRequest() {
return request;
}

public void setRequest(HttpServletRequest arg0) {
}
}

/***============ExtHttpDoradoContext结束==============*****/


/****==========业务调用开始===========****/
@Test
public void reverseFinanceBill_collectMoney() throws Exception{
               try{
TestRequest.registerDoradoContext();
SessionHolder.setUserCode("kh0001");
SessionHolder.setUserUid(1L);
SessionHolder.setUserName("客户1");
                /***测试代码****/

}finally{
TestRequest.unregisterDoradoContext();
}
         }
/****==========业务调用结束===========****/


分享到:
评论

相关推荐

    Struts2+Spring+hibernate中对action的单元测试环境搭建[总结].pdf

    Struts2+Spring+Hibernate 中的Action单元测试环境搭建 在软件开发中,单元测试是一种非常重要的测试方法,可以帮助我们确保代码的可靠性和稳定性。在 Struts2+Spring+Hibernate 框架中,对 Action 的单元测试环境...

    hibernate 单元测试批处理代码

    在IT行业中,Hibernate是一个强大的Java持久化框架,它简化了与关系型数据库的交互,而单元测试则是确保代码质量的重要工具。在这个“hibernate 单元测试批处理代码”项目中,我们将深入探讨如何使用Hibernate进行...

    Hibernate配置文件在单元测试中的应用

    本篇文章将详细探讨Hibernate配置文件在单元测试中的应用。 首先,我们需要理解什么是单元测试。单元测试是针对程序模块的最小可测试单元进行验证,例如一个方法或一个类。它的目的是确保代码的每个部分都能按照...

    ssh2单元测试action的例子

    根据提供的文件信息,我们可以深入探讨如何为SSH2框架中的Action组件编写单元测试。这份文档将涵盖以下几个关键知识点:Maven依赖配置、Struts2配置、Spring集成以及具体的Action类实现和测试方法。 ### Maven依赖...

    JSP单元测试题JNDI JAVA Naming and Directory interface

    【JSP单元测试题JNDI -JAVA Naming and Directory interface】 JNDI(JAVA Naming and Directory interface)是Java平台提供的一套接口和API,用于访问各种命名和目录服务,如DNS、LDAP等。通过JNDI,开发者可以...

    Net Session购物车示例_sessiongwc.rar

    10. **测试与调试**:对购物车功能进行充分的单元测试和集成测试,确保其在各种场景下都能正常工作。 这个示例代码可以帮助开发者深入理解如何在实际项目中运用Session来实现购物车功能,同时也提供了练习和学习...

    23项目单元测试方案.doc

    在软件开发过程中,单元测试是确保代码质量的重要环节,它专注于测试每个独立的程序单元或模块,以验证其功能是否符合预期。本方案详细阐述了23项目的单元测试策略,包括黑盒测试和白盒测试两个主要方面。 一、黑盒...

    购物车 java ee session

    7. **测试和部署**:开发完成后,需要进行单元测试、集成测试和压力测试,确保系统功能完整且能在高并发环境下稳定运行。部署时,可能需要考虑负载均衡、集群配置,以应对大规模用户访问。 以上就是构建"购物车 ...

    junit学习(十)——Springpring与Hibernate整合的单元测试

    在本篇《junit学习(十)——Spring与Hibernate整合的单元测试》中,我们将探讨如何在Java开发中,利用JUnit进行Spring和Hibernate框架的集成测试。单元测试是软件开发中的重要环节,它能帮助开发者确保代码的质量和...

    Net单元测试与性能优化备用.rar

    在.NET开发中,单元测试是一种重要的软件质量保证手段,它允许开发者对代码的各个独立部分进行验证,确保它们按照预期工作。C#作为.NET的主要编程语言,拥有强大的单元测试框架,如NUnit、xUnit和MSTest。这些框架...

    redis-session-manager-redis-session-manager-2.0.2.tar.gz

    4. **测试**:单元测试或集成测试代码,验证软件功能的正确性。 5. **依赖库**:可能包含了与Redis Session Manager一起使用的第三方库或框架。 总之,Redis Session Manager是一个强大的工具,它利用Redis数据库的...

    spring-session-1.3.1.RELEASE.zip

    5. **测试支持**:为了帮助开发者更好地测试和调试,此版本可能增强了测试工具和示例代码,包括模拟不同会话存储后端的测试类,以及如何在单元测试和集成测试中使用 Spring Session 的指导。 6. **文档更新**:...

    jsp中Action使用session方法实例分析.docx

    当 Struts2 执行该 Action 时,它会自动调用 `setSession` 方法,将当前请求的 Session 对象注入到 `session` 属性中。接下来,我们就可以直接使用 `session` 属性来操作 Session 了。 #### 三、创建基类简化 ...

    Session HashTable 购物车源代码

    6. **测试**:为了保证代码质量,可能包含单元测试和集成测试,确保购物车的各种操作如添加、修改、删除商品等都能正确执行。 通过分析这个"Session HashTable 购物车源代码",我们可以学习如何结合使用Session和...

    Swift 实现的简单的 Session 管理库.zip

    开发者可能通过XCTest进行单元测试,验证单个组件的功能,以及使用模拟器或真机进行集成测试,确保所有组件协同工作。 8. **文档和示例**: 开源项目通常提供清晰的README文件,解释如何安装、配置和使用库。此外...

    在jdeveloper 中测序sessionEJB

    本文将深入探讨如何在JDeveloper中有效地创建、配置和测试Session EJB(Enterprise JavaBeans)组件。Session EJB是Java EE应用程序中的核心组件,它提供了服务器端的业务逻辑处理,可以看作是客户端请求的服务器端...

    laravel单元测试之phpUnit中old()函数报错解决

    在正常浏览过程中,Laravel会自动处理Session的创建和管理,但在单元测试环境中,由于缺少某些环境配置,Session可能不会按预期工作。 在Laravel的`app/Http/kernel.php`文件中,我们可以看到全局中间件的配置,...

Global site tag (gtag.js) - Google Analytics