使用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、log4j、slf4j、junit4、ehcache等库或框架,搭建一个最基本的项目原型。 三、 三大框架最新版本下载:截止2014-10-01 Struts2.3.6:发布于2014-05-03,目前的最新版本。...
总的来说,结合JUnit、Spring和Hibernate进行测试,能够确保应用程序的各个层面都得到了充分验证,提高代码质量并减少潜在的bug。通过学习和实践这些测试技术,开发者可以构建更稳定、更易于维护的Java应用程序。
首先,需要使用 Struts2 提供的 StrutsSpringTestCase 来测试 Action。在这个类中,有一个 request 属性,可以用来 Mock 出 Session,以代替网页请求的真实 Session。这使得我们可以模拟用户的请求,测试 Action 的...
**Spring3整合Hibernate4测试Demo** 在Java Web开发中,Spring和Hibernate是两个非常重要的框架。Spring是一个全面的后端应用程序框架,它提供了依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)以及其他...
将 `JUnit` 与 `Spring`、`Hibernate` 结合使用,可以对 `DAO(Data Access Object)` 层进行有效的测试,确保数据访问逻辑的正确性。 首先,`DAO` 层是业务逻辑和数据库操作之间的隔离层,通常包含了增删改查等...
Spring通过其HibernateTemplate或SessionFactoryBean类提供了对Hibernate的集成支持,使得在Spring应用中使用Hibernate变得更加便捷。 2. **配置文件**:整合过程中,我们需要配置Spring的ApplicationContext.xml...
4. 使用JUnit进行测试驱动开发 5. Eclipse集成开发环境的使用 理解并掌握这些知识点,对于任何Java后端开发者来说都至关重要,因为它们构成了现代企业级应用的基础架构。通过实践这个整合例子,你可以深入学习和...
开发人员先使用JUnit编写测试用例,确保代码的正确性,然后利用Hibernate来处理数据库操作,简化数据访问层的实现。通过引入这些jar文件,开发者可以在本地环境中快速搭建开发和测试环境,进行高效可靠的Java应用...
10. **测试与部署**:编写JUnit测试用例,对Controller、Service、DAO层进行单元测试。测试无误后,将项目打包成WAR文件,部署到Tomcat服务器上运行。 通过上述步骤,我们完成了Spring MVC、Spring、Hibernate的...
本项目"spring+hibernate整合列子"是一个实例教程,展示了如何将这两个框架结合在一起,用于实现对MySQL数据库的CRUD(创建、读取、更新、删除)操作,并且通过JUnit进行单元测试,确保功能的正确性。 首先,Spring...
可以使用 Spring 提供的 TestContext 框架,结合 JUnit 或 TestNG,对 Service 和 DAO 层进行测试。 10. **最佳实践**:在实际项目中,为了提高性能和可维护性,通常会采用 MyBatis 或 JPA 作为更轻量级的数据访问...
8. **测试**:编写TestSH4类进行测试,通过JUnit或其他测试框架,调用Service层的方法进行增删改查操作,验证功能是否正常。 以上就是使用Spring4和Hibernate4实现增删改查的基本流程。在实际开发中,我们还需要...
在本整合实例中,我们将探讨如何将Spring MVC 5、Hibernate 5、JUnit 4 和 Log4j2 集成在一起,以构建一个高效、可测试和日志记录完善的Java Web应用程序。以下是对这些技术及其整合过程的详细说明: **Spring MVC ...
总结来说,"SpringMVC+Hibernate+Junit4基本框架近乎0配置Jar包"是一个为Java Web开发准备的便利集合,它包含了构建MVC应用、数据库操作和测试所需的核心组件。通过这些Jar包,开发者可以快速搭建起一个基础框架,...
在开发过程中,通过编写JUnit测试用例,可以对代码进行自动化测试,确保每个独立的代码单元都能正常工作。这有助于提高代码质量和稳定性。 4. **AOP(面向切面编程)**:Spring 提供了AOP支持,使得开发者可以将...
使用JUnit和Mockito进行单元测试,确保每个组件(如Controller、Service、DAO)的功能正常。同时,Spring Test库可以帮助我们进行Spring容器内的集成测试。 9. webapp-minimal项目结构: "webapp-minimal"这个...
在本工程中,我们可以看到如何设置Junit测试类,对Spring和Hibernate的集成功能进行验证。 2. Hibernate3.2:作为一款强大的对象关系映射(ORM)框架,Hibernate3.2简化了数据库操作,使得开发者可以使用Java对象而...
总结来说,使用JUnit针对Spring MVC的三层进行测试,我们需要: 1. 测试表现层(Controller),验证HTTP请求处理和视图渲染。 2. 测试业务层,确保业务逻辑的正确性和依赖隔离。 3. 测试服务数据访问层,验证数据库...
在IT行业中,集成Spring和Hibernate框架是常见的开发实践,尤其在企业级应用中,这两个框架的结合能够提供强大的数据访问和业务逻辑管理能力。MyEclipse作为一款强大的Java集成开发环境,提供了便捷的工具支持来简化...
在IT行业中,Spring和Hibernate是两个非常重要的框架...通过以上步骤,你已经成功地将Spring、Hibernate和JUnit整合到了项目中,可以进行高效的开发和测试工作。记得持续更新依赖库,以获取最新的安全修复和功能改进。