`

用Spring2.5进行单元测试

阅读更多
要创建一个基于Spring2.5的JUnit4.4测试用例其实相当简单,主要进行以下几步的工作:
(1)创建一个扩展自AbstractTransactionalJUnit4SpringContextTests的类,该基类是Spring2.5为方便在JUnit4环境进行事务测试的类,它还提供了一个simpleJdbcTemplate属性让你可以方便地操控数据库表,便于对测试数据进行有效的操作;
(2)用@ContextLocation注解指定你要加载的Spring配置信息所在的位置;(默认的加载文件信息请参阅Spring Documentation);
(3)用@Autowired或@Resource注解注入你的Service接口,@Autowrired是指按类型将Spring Bean注入;而@Resource则按名称将Spring Bean注入。
(4)用@Before准备待测试的数据,如果我们的数据库表结构没有任何数据,则可以在这里预先插入记录,以便进行单元测试,当整个测试完成后,这些数据都不会被保留在数据库中。
(5)在需要进行测试的方法上使用JUnit4.4提供的@Test注解进行标示;

下面我们以一个例子来说明如何编写一个测试用例:
<1>示例信息
假设我们有一个名为TrainProjectService的服务类需要进行单元测试,该Service接口的方法如清单1-1所示:
//清单1-1
public interface TrainProjectService {

    // 根据ID获取培训项目信息
    public TrainProject getTrainProjectById(Integer trainProjectId);
    …
}

//Spring配置信息如清单1-2所示:
//清单1-2
/cn/com/suhao/test/train/conf/applicationContext-train-service.xml
…
<bean  id="trainProjectService" 
class="cn.com.suhao.test.train.service.impl.TrainProjectServiceImp">
       <property name="trainProjectDao" ref="trainProjectDao" />
</bean>
…

/cn/com/suhao/test/train/conf/applicationContext-train-dao.xml
…
<bean  id="trainProjectDao"
class="cn.com.suhao.test.train.dao.impl.TrainProjectDAOImp" parent="parentDao" />
…

//<2>测试用例
@ContextConfiguration(locations={"/cn/com/suhao/test/appconf/applicationContext.xml", 
         "/cn/com/suhao/test/train/conf/applicationContext-*.xml"
        }
)
public class TestTrainProjectService extends AbstractTransactionalJUnit4SpringContextTests {

    @Autowired
    private TrainProjectService trainProjectService;
    private Integer projectId;
    
    @Before
    public void prepareTestData() {
        final String  sql = "insert into train_project(project_name, project_attendee) values('English Test', 'Mike')";
        KeyHolder keyHolder = new GeneratedKeyHolder();
        simpleJdbcTemplate.getJdbcOperations().update(
            new PreparedStatementCreator() {
                public PreparedStatement createPreparedStatement(Connection conn)
                    throws SQLException {
                    PreparedStatement ps = conn.prepareStatement(sql);
                    return ps;
                }
            }, keyHolder);
        projectId = keyHolder.getKey().intValue();
    }
    
    @Test
    public void testGetTrainProject() {
        TrainProject trainProject = trainProjectService.getTrainProjectById(projectId);
        Assert.notNull(trainProject);
    }
    
}
分享到:
评论

相关推荐

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

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

    Spring2.5-中文参考手册chm

    Spring Test模块提供了集成测试框架,使得开发者可以方便地编写单元测试和集成测试,支持模拟对象和Spring应用上下文的加载。 **总结** Spring2.5中文参考手册是学习和理解Spring框架的重要资源,涵盖了上述所有...

    Spring2.5 源代码

    Spring 2.5提供了强大的测试框架,包括`@Test`注解和`Mockito`集成,使得单元测试和集成测试变得更加容易。 10. **事务管理**: Spring 2.5的事务管理是另一个重要的功能,它支持编程式和声明式事务管理,确保了...

    spring 2.5中文帮助文档

    7. **测试支持**:Spring 2.5包含丰富的测试工具和API,支持单元测试和集成测试,如Mockito和Spring TestNG支持,方便进行代码验证和应用测试。 8. **国际化(i18n)与本地化(l10n)**:Spring 2.5提供了对国际化...

    spring2.5常用包

    8. **测试支持**:Spring 提供了测试框架,使得单元测试和集成测试更加便捷。例如,@RunWith(SpringJUnit4ClassRunner.class) 注解可以启动 Spring 上下文,便于测试 Bean 间的协作。 9. **JMS(Java Message ...

    spring2.5中文文档(PDF)

    1. **依赖注入增强**:Spring 2.5进一步完善了DI机制,支持注解驱动的配置,使得开发者可以在类和方法级别使用`@Autowired`、`@Qualifier`等注解进行依赖注入,减少了XML配置文件的使用。 2. **注解支持**:Spring ...

    Spring2.5中文手册

    - Spring Test模块提供了对Spring应用进行单元测试和集成测试的支持,包括`ApplicationContext`的加载和销毁。 - Spring 2.5改进了测试类的继承结构,使得测试编写更加简洁。 10. **Web应用上下文** - Spring ...

    spring2.5 mvc 完整项目

    7. **测试**:编写单元测试和集成测试,确保每个组件的正确性。 8. **部署**:将项目打包成WAR文件,部署到Tomcat或其他Servlet容器。 总结,"Spring 2.5 MVC 完整项目"是一个综合性的学习和实践资源,涵盖了从...

    传智播客 spring2.5源代码_lib包

    这个"传智播客 spring2.5源代码_lib包"包含了Spring框架2.5版本的库文件,这些库文件对于理解Spring的工作原理、学习如何使用它以及进行相关开发非常有帮助。下面我们将深入探讨Spring 2.5的一些核心概念和功能。 1...

    Spring2.5

    通过阅读《spring2.5+学习笔记.doc》和《黎活明__spring教程.ppt》以及《黎活明_struts2教程.ppt》,你可以更深入地了解Spring 2.5与Struts2的整合,以及在实际项目中如何有效地利用这些知识。尽管Spring框架已经...

    传智播客 黎活明spring2.5 ppt

    9. **测试支持**:Spring 2.5提供了集成测试框架,如`@ContextConfiguration`和`@Test`注解,方便进行单元测试和集成测试。 10. **Spring与其他框架的整合**:Spring 2.5版本加强了与Struts、Hibernate、Quartz等...

    spring2.5需要的jar

    在压缩包"spring2.5需要的jar"中,可能包含了一系列Spring框架的核心库,如spring-core、spring-context、spring-aop、spring-beans、spring-expression等。这些jar文件是构建基于Spring 2.5的应用所必需的,它们...

    精通spring2.5

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

    spring2.5源码

    Spring Test模块在2.5版本中增加了对注解测试的支持,如`@ContextConfiguration`和`@Test`,使得单元测试和集成测试更加方便。 通过深入学习Spring 2.5的源码,开发者可以更好地理解Spring框架的设计思想和工作...

    cxf+Spring2.5

    【标题】"cxf+Spring2.5" 指的是使用Apache CXF框架与Spring 2.5版本进行集成的示例项目。Apache CXF是一个开源服务框架,它允许开发人员创建和消费Web服务,而Spring框架则是一个广泛使用的Java企业级应用的IOC...

    spring2.5中文开发手册

    这份手册能够帮助开发者理解并掌握Spring的众多功能,包括配置和使用Spring IoC容器,如何在项目中集成Spring MVC和Spring的事务管理功能,以及如何使用Spring AOP进行面向切面的编程等。通过这份手册,开发者可以...

    Spring2.5.rar

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

    Spring2.5_CN 开发参考手册(中文版).rar

    《Spring2.5_CN 开发参考手册》是针对Spring Framework 2.5版本的一份详尽的中文参考资料,旨在帮助开发者深入理解并有效利用Spring框架进行软件开发。这份手册覆盖了Spring的核心概念、配置、使用方法以及API的详细...

    spring2.5 中文参考手册

    10. **单元测试和集成测试支持**:Spring提供了TestContext框架,使得编写和运行单元测试以及集成测试变得简单。 通过阅读这本中文参考手册,开发者可以深入了解Spring 2.5的各种功能,掌握如何使用Spring构建高...

    Spring2.5架构图

    10. **测试支持**:Spring 2.5 强化了测试框架,包括 `MockMVC` 和 `TestContext` 框架,使得单元测试和集成测试更加方便。 以上是 Spring 2.5 架构中的核心知识点,它们共同构建了一个强大且灵活的应用开发框架,...

Global site tag (gtag.js) - Google Analytics