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

spring2.5与junit整合的笔记

阅读更多

绝对好文, 快2点了, 可算看到点好东西.

 

1,为了尽量平稳过渡,继续用junit3.8,而不是直接使用junit4
2,@ContextConfiguration(locations = { "classpath:applicationContext-sys.xml",
        "classpath:applicationContext.xml" })
public class BaseTests extends AbstractTransactionalJUnit38SpringContextTests {
}
所有的TestCase都继承上面这个类,使得spring配置文件重用,同时ApplicationContext也是同一个。

3,要测试的service类通过@Autowired注入,例如
    @Autowired
    private UserDAO  userDAO;
    
4,注意,对于继承了BaseTests的测试类里的每一个test方法,运行测试时都会按
   setUp()-->test方法-->tearDown()的顺序执行,而且这3个组成一个事务,执行完后默认会回滚。
   如果不想回滚,在类名前面@TransactionConfiguration(defaultRollback = false)
   
5,因为还是用的junit3.8,故TestSuite的写法照旧
  public class SuiteTests {
    public static Test suite() {
        TestSuite suite = new TestSuite("运行所有测试");
        suite.addTestSuite(UserServiceTests.class);
        suite.addTestSuite(RoleServiceTests.class);
        return suite;
    }
}

6,测试类并没有当作bean配置在application.xml文件中,
   spring测试框架是如何使"setUp()-->test方法-->tearDown()"处于同一个事务的呢?
   具体就要看AbstractTransactionalJUnit38SpringContextTests了,是通过注解实现的。
   service方法在test方法里面,这两个方法都配置有事务,即形成了事务的嵌套,这里有点复杂了,我还没想清楚。
   不过可以肯定的是,如果test方法的事务不提交,那么service方法的事务也不会提交。
   
7,如果想在jdk1.4下重用ApplicationContext,可采用以下的办法,出处再补上。这个办法与前面的进行比较,
   我觉得最大的区别是这种写法要手动进行测试数据的清除。
public class BaseTestCase extends TestCase {
     static ApplicationContext context = null;

    static {
        // perform the "global" set up logic
        // 这里的代码会在类初始化时执行,所以相当于BeforeClass
        String[] CONFIG_FILES_MIN = { "applicationContext-sys.xml",
                "applicationContext.xml" };
        context = new ClassPathXmlApplicationContext(CONFIG_FILES_MIN);
        System.out.println("setup");

        // and now register the shutdown hook for tear down logic
        // 将一个匿名方法写到这里,就相当于AfterClass
        Runtime.getRuntime().addShutdownHook(new Thread() {
            public void run() {
                System.out.println("shutdown");
            }
        });
    }

    protected void setUp() throws Exception {
    }
}

8,如果用junit-4.jar,去官网下载junit4.4.jar。不要采用myeclipse自带的junit4.jar,因为这个不带JUnit4ClassRunner类。
   另外不要用junit-4.5.jar,据说与spring2.5有冲突,
   详见Spring Test Context Framework not compatible with JUnit 4.5,http://jira.springframework.org/browse/SPR-5145

分享到:
评论

相关推荐

    Structs2.0+Spring2.5+Ibatis整合例子

    5. **整合Spring与iBatis**:通过SqlSessionTemplate或SqlSessionCallback在Spring的DAO中执行iBatis的SQL语句。 6. **测试**:编写JUnit测试用例,确保在不同类型的数据库和数据源下,应用程序都能正常工作,没有...

    Spring2.5-中文参考手册chm.zip

    8. **测试支持**:Spring 2.5提供了更完善的测试工具,如`@RunWith(SpringJUnit4ClassRunner.class)`和`@ContextConfiguration`注解,使得基于Spring的应用测试更加便捷。 9. **集成其他框架**:Spring 2.5加强了与...

    spring2.5_学习笔记

    Spring 2.5提供了丰富的测试支持,包括`@Test`注解的`SpringJUnit4ClassRunner`,使得单元测试和集成测试变得更加便捷。 总之,Spring 2.5作为Spring框架的一个重要版本,不仅增强了核心功能,还引入了众多新特性,...

    spring2.5常用包

    例如,@RunWith(SpringJUnit4ClassRunner.class) 注解可以启动 Spring 上下文,便于测试 Bean 间的协作。 9. **JMS(Java Message Service)支持**:Spring 2.5 支持消息驱动的应用,通过 JMSTemplate 和 Message...

    spring2.5中文文档(PDF)

    《Spring 2.5中文文档》是一份详细阐述Spring框架2.5版本特性和使用方法的资源,旨在帮助开发者深入理解和高效应用这一流行的Java企业级应用程序开发框架。这份文档是中文版,对于中国开发者来说,提供了更为便捷的...

    spring2.5需要的jar

    Spring 2.5强化了与其它技术的集成,包括JPA、Hibernate、MyBatis等持久层框架,以及Quartz、Commons-Job等调度库。 10. **测试框架**: 提供了更好的测试支持,包括`@RunWith(SpringJUnit4ClassRunner.class)`和...

    eclipse搭建spring2.5

    在新建项目的配置中,确保JRE版本与Spring 2.5兼容。点击"Next",在"Libraries"选项卡下,点击"Add External JARs...",选择之前导入的Spring库jar文件,然后点击"Finish"。 3. **配置Spring项目**:创建一个名为`...

    精通spring2.5

    8. **测试框架**:Spring Test 2.5提供了对JUnit和TestNG的全面支持,使得单元测试和集成测试变得更加简单。 通过《精通Spring 2.5》的学习,开发者不仅可以深入了解Spring框架的基础原理,还能掌握如何在实际项目...

    Junit4+Spring2.5单元测试代码示例(也适用注解测试)

    Junit4+Spring2.5单元测试代码示例同时也适用注解注入的形式测试(前提要导好测试的包哦,包MyEclipce自带了)

    Spring2.5.rar

    5.测试支持:Spring 2.5提供了JUnit和Mockito的集成,便于进行单元测试和集成测试。 总结,Spring 2.5作为Spring框架的一个重要里程碑,它的改进和特性为Java开发者带来了更加高效、灵活的开发体验。通过深入理解并...

    Spring2.5 中文文档 chm格式

    2.5版本引入了`@RequestMapping`注解,使得控制器方法与URL路径的映射更加直观和简洁。此外,还支持了更多的视图技术,如Freemarker和Velocity,丰富了视图层的选择。 在数据访问层面,Spring2.5增强了JDBC模板和...

    junit+hibernate3.2+spring2.5工程

    《基于Junit、Hibernate3.2与Spring2.5的集成工程详解》 在软件开发领域,测试是不可或缺的一部分,而Java开发中的Junit框架则是单元测试的重要工具。结合持久层框架Hibernate和依赖注入框架Spring,可以构建出高效...

    最新spring2.5帮助文档

    9. **测试支持**:Spring 2.5提供了一套完整的测试框架,包括`@Test`注解的`SpringJUnit4ClassRunner`,以及`Mockito`的集成,便于进行单元测试和集成测试。 10. **Spring Web Flow集成**:Spring 2.5开始支持...

    spring 2.5 中文pdf

    10. **与其他技术的集成**:Spring 2.5加强了与EJB、Quartz、JMS等技术的集成,使得开发者能够构建更复杂的分布式系统。 总之,Spring 2.5中文PDF教程是学习和掌握Spring框架的关键资源,它涵盖了Spring的核心特性...

    spring2.5相关包

    8. **测试框架**:Spring 2.5 强化了测试框架,支持了 @RunWith(SpringJUnit4ClassRunner.class) 和 @ContextConfiguration 注解,使得基于注解的 Spring 测试变得容易,提高了测试效率。 在提供的 "lib" 压缩包...

    使用 Spring 2.5 TestContext 测试框架

    在Spring框架中,TestContext模块为开发者提供了强大的测试支持,特别是在Spring 2.5版本中,这个测试框架进一步增强了测试的便利性和可扩展性。它允许我们以声明式的方式配置和管理测试环境,包括bean的初始化、...

    struts2 spring2.5 hibernate3.0 annotation 整合

    Struts2、Spring2.5和Hibernate3.0是Java Web开发中三个非常重要的框架,它们各自负责不同的职责,但可以协同工作以构建高效、可维护的Web应用程序。本项目整合了这三个框架,并利用注解(Annotation)进行配置,...

    Spring2.5的新特性

    在测试方面,Spring2.5增加了对JUnit4的支持,使得编写单元测试更为便捷。开发者可以使用@RunWith(SpringJUnit4ClassRunner.class)注解来启动Spring应用程序上下文,并直接在测试方法上使用@Test注解。 **Spring ...

    整合Struts2,Spring2.5,Hibernate3.3操作参考

    **整合Struts2、Spring2.5与Hibernate3.3操作参考** 在Java Web开发中,Struts2、Spring和Hibernate是三个非常重要的框架,它们分别负责MVC(Model-View-Controller)模式中的控制层、业务逻辑层和服务数据访问层。...

    spring2.5中文操作手册

    10. **Spring测试框架**:Spring 2.5提供了对单元测试和集成测试的强大支持,包括`@Test`注解、模拟对象(Mock Objects)以及对各种测试框架(如JUnit、TestNG)的集成。 通过阅读《Spring 2.5中文操作手册》,...

Global site tag (gtag.js) - Google Analytics