`
lh_kevin
  • 浏览: 44107 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

使用JUnit4来对Spring/Hibernate应用进行测试

阅读更多

使用JUnit4来对Spring/Hibernate应用进行测试

背景:
如果在Hibernate层采用lazy=true的话,有的时候会抛出LazyInitializationException,这时一种解决办法是用OpenSessionInViewFilter,但是如果通过main方法来运行一些测试程序,那么上述方法就没有用武之地了。这里提供了一种方法,来达到实现和OpenSessionInViewFilter相同作用的目的。这里的应用场景是采用JUnit4来编写测试用例。

JUnit4的好处是:采用annotation来代替反射机制,不必写死方法名.
首先添加一个abstract class(AbstractBaseTestCase.class), 做一些准备性的工作:
(可以看到@Before和@After两个annotation的作用相当于setUp()和tearDown()方法,但是,显然更灵活)

/***
* An abstract base class for TestCases.
* All test cases should extend this class.
*/

public class AbstractBaseTestCase {

    private SessionFactory sessionFactory; 
    private Session session; 
    protected FileSystemXmlApplicationContext dsContext;
    private String []configStr = {"/WebRoot/WEB-INF/applicationContext.xml"}; 
  //private String []configStr = {"/src/applicationContext.xml"}; 

  @Before
  public void openSession() throws Exception {

        dsContext = new FileSystemXmlApplicationContext(configStr);

        sessionFactory = (SessionFactory) dsContext.getBean("sessionFactory"); 

        session = SessionFactoryUtils.getSession(sessionFactory, true); 

        session.setFlushMode(FlushMode.MANUAL); 

        TransactionSynchronizationManager.bindResource(sessionFactory, new SessionHolder(session));

  }

  @After
  public void closeSession() throws Exception {

        TransactionSynchronizationManager.unbindResource(sessionFactory); 

        SessionFactoryUtils.releaseSession(session, sessionFactory); 
  }
}

接下来继承上述基类,实现测试逻辑:
(注意import static用于引用某个类的静态方法)
(@Test注解表明该方法是一个测试方法)

public class testCase1 extends AbstractBaseTestCase {

  private YourManager manager;

  @Before
  public void prepare(){
    manager = (YourManager)dsContext.getBean("YourManager");
  }

  @Test
  public void test1(){
    String result = manager.do_sth();
  }
}

分享到:
评论

相关推荐

    最新版本的Struts2+Spring4+Hibernate4框架整合

    同时使用了Struts2、Spring4、Hibernate4、log4j、slf4j、junit4、ehcache等库或框架,搭建一个最基本的项目原型。 三、 三大框架最新版本下载:截止2014-10-01 Struts2.3.6:发布于2014-05-03,目前的最新版本。...

    JUnit(针对spring和hibernate)

    总的来说,结合JUnit、Spring和Hibernate进行测试,能够确保应用程序的各个层面都得到了充分验证,提高代码质量并减少潜在的bug。通过学习和实践这些测试技术,开发者可以构建更稳定、更易于维护的Java应用程序。

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

    首先,需要使用 Struts2 提供的 StrutsSpringTestCase 来测试 Action。在这个类中,有一个 request 属性,可以用来 Mock 出 Session,以代替网页请求的真实 Session。这使得我们可以模拟用户的请求,测试 Action 的...

    Spring3整合Hibernate4测试Demo

    **Spring3整合Hibernate4测试Demo** 在Java Web开发中,Spring和Hibernate是两个非常重要的框架。Spring是一个全面的后端应用程序框架,它提供了依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)以及其他...

    junit测试spring,hibernate的dao层代码

    将 `JUnit` 与 `Spring`、`Hibernate` 结合使用,可以对 `DAO(Data Access Object)` 层进行有效的测试,确保数据访问逻辑的正确性。 首先,`DAO` 层是业务逻辑和数据库操作之间的隔离层,通常包含了增删改查等...

    spring-Hibernate整合代码测试过程

    Spring通过其HibernateTemplate或SessionFactoryBean类提供了对Hibernate的集成支持,使得在Spring应用中使用Hibernate变得更加便捷。 2. **配置文件**:整合过程中,我们需要配置Spring的ApplicationContext.xml...

    spring4+hibernate4整合例子

    4. 使用JUnit进行测试驱动开发 5. Eclipse集成开发环境的使用 理解并掌握这些知识点,对于任何Java后端开发者来说都至关重要,因为它们构成了现代企业级应用的基础架构。通过实践这个整合例子,你可以深入学习和...

    hibernate和junit的jar

    开发人员先使用JUnit编写测试用例,确保代码的正确性,然后利用Hibernate来处理数据库操作,简化数据访问层的实现。通过引入这些jar文件,开发者可以在本地环境中快速搭建开发和测试环境,进行高效可靠的Java应用...

    springmvc+spring+hibernate

    10. **测试与部署**:编写JUnit测试用例,对Controller、Service、DAO层进行单元测试。测试无误后,将项目打包成WAR文件,部署到Tomcat服务器上运行。 通过上述步骤,我们完成了Spring MVC、Spring、Hibernate的...

    spring+hibernate整合列子,用junit测试增删改查都实现(MySQL包含表)

    本项目"spring+hibernate整合列子"是一个实例教程,展示了如何将这两个框架结合在一起,用于实现对MySQL数据库的CRUD(创建、读取、更新、删除)操作,并且通过JUnit进行单元测试,确保功能的正确性。 首先,Spring...

    Spring+hibernate整合源代码

    可以使用 Spring 提供的 TestContext 框架,结合 JUnit 或 TestNG,对 Service 和 DAO 层进行测试。 10. **最佳实践**:在实际项目中,为了提高性能和可维护性,通常会采用 MyBatis 或 JPA 作为更轻量级的数据访问...

    spring4+hibernate4实现增删改查

    8. **测试**:编写TestSH4类进行测试,通过JUnit或其他测试框架,调用Service层的方法进行增删改查操作,验证功能是否正常。 以上就是使用Spring4和Hibernate4实现增删改查的基本流程。在实际开发中,我们还需要...

    springmvc5+hibernate5+junit4+log4j2整合实例

    在本整合实例中,我们将探讨如何将Spring MVC 5、Hibernate 5、JUnit 4 和 Log4j2 集成在一起,以构建一个高效、可测试和日志记录完善的Java Web应用程序。以下是对这些技术及其整合过程的详细说明: **Spring MVC ...

    SpringMVC+Hibernate+Junit4基本框架近乎0配置Jar包

    总结来说,"SpringMVC+Hibernate+Junit4基本框架近乎0配置Jar包"是一个为Java Web开发准备的便利集合,它包含了构建MVC应用、数据库操作和测试所需的核心组件。通过这些Jar包,开发者可以快速搭建起一个基础框架,...

    Spring+hibernate+junit+aop_ jar包

    在开发过程中,通过编写JUnit测试用例,可以对代码进行自动化测试,确保每个独立的代码单元都能正常工作。这有助于提高代码质量和稳定性。 4. **AOP(面向切面编程)**:Spring 提供了AOP支持,使得开发者可以将...

    最小的Spring+Hibernate应用系统

    使用JUnit和Mockito进行单元测试,确保每个组件(如Controller、Service、DAO)的功能正常。同时,Spring Test库可以帮助我们进行Spring容器内的集成测试。 9. webapp-minimal项目结构: "webapp-minimal"这个...

    junit+hibernate3.2+spring2.5工程

    在本工程中,我们可以看到如何设置Junit测试类,对Spring和Hibernate的集成功能进行验证。 2. Hibernate3.2:作为一款强大的对象关系映射(ORM)框架,Hibernate3.2简化了数据库操作,使得开发者可以使用Java对象而...

    junit针对spring mvc三层测试

    总结来说,使用JUnit针对Spring MVC的三层进行测试,我们需要: 1. 测试表现层(Controller),验证HTTP请求处理和视图渲染。 2. 测试业务层,确保业务逻辑的正确性和依赖隔离。 3. 测试服务数据访问层,验证数据库...

    使用MyEclipse下整合Spring和Hibernate

    在IT行业中,集成Spring和Hibernate框架是常见的开发实践,尤其在企业级应用中,这两个框架的结合能够提供强大的数据访问和业务逻辑管理能力。MyEclipse作为一款强大的Java集成开发环境,提供了便捷的工具支持来简化...

    Spring+Hibernate 加入JUnit Jar包

    在IT行业中,Spring和Hibernate是两个非常重要的框架...通过以上步骤,你已经成功地将Spring、Hibernate和JUnit整合到了项目中,可以进行高效的开发和测试工作。记得持续更新依赖库,以获取最新的安全修复和功能改进。

Global site tag (gtag.js) - Google Analytics