Spring2.5 下单元测试

简介:
测试目标:测试不依赖现有的数据库数据,测试不破坏现有的数据。
 
环境:
MySQL5(表为INNDB引擎)
Java 1.5
Spring 2.5.4
 
假设你已经具备上上述的环境,假设你写好了DAO实现,假设现在要测试DAO。
 
那么,你需要做的仅仅是:
1、配置好数据源。
    <!--  配置系统的数据源 --> 
     < bean  id ="dataSource"  class ="org.apache.commons.dbcp.BasicDataSource"  destroy-method ="close" > 
         < property  name ="driverClassName" > 
             < value >${jdbc.driver} </ value > 
         </ property > 
         < property  name ="url" > 
             < value >${jdbc.url} </ value > 
         </ property > 
         < property  name ="username" > 
             < value >${jdbc.username} </ value > 
         </ property > 
         < property  name ="password" > 
             < value >${jdbc.password} </ value > 
         </ property > 
     </ bean >
 
2、配置好事务管理类。
     < bean  id ="transactionManager" 
           class ="org.springframework.jdbc.datasource.DataSourceTransactionManager" > 
         < property  name ="dataSource"  ref ="dataSource" /> 
     </ bean >
 
3、配置好DAO的Bean。
 
    < bean  id ="someDAO"  class ="org.lavasoft.test.SomeDAOImpl" /> 
 
4、写DAO的测试类,并继承AbstractTransactionalDataSourceSpringContextTests类,并且注入这个DAO实现,并写getConfigLocations()方法,然后写每个要测试的方法。
 
 
public  class TestSomeDAO  extends AbstractTransactionalDataSourceSpringContextTests { 
     //注入DAO 
     private SomeDAO someDAO; 

     public  void setSomeDAO(SomeDAO someDAO) { 
         this.someDAO = someDAO; 
    } 
  
     //加载资源配置文件 
    @Override 
     public String[] getConfigLocations() { 
         return  new String[]{ "ApplicationContext.xml""ApplicationContext_xxx.xml"}; 
    } 

     public  void testSave() { 
        Some some =  new Some(); 
        some.setId(1L); 
        some.setname( "x"); 
        someDAO.saveSome(some); 
        String sql =  "select count(*) from t_some t where t.id=1"
         int row = (Integer) jdbcTemplate.queryForObject(sql, Integer. class); 
        assertEquals(1, row); 
    } 

     public  void testFindById() { 
        Some some = someDAO.findSomeById(1L); 
        System.out.println(some.getCode() +  "  " + some.getSomeKind()); 
        assertNotNull(some); 
    } 

     public  void testDeleteById() { 
        someDAO.deleteSomeById(1L); 
        String sql =  "select count(*) from t_some t where t.code = 1"
         int row = (Integer) jdbcTemplate.queryForObject(sql, Integer. class); 
        assertEquals(0, row); 
    } 

}
 
经过以上四个步骤,你就实现了测试的目标,换做Service也一样行。
 

本文转自 leizhimin 51CTO博客,原文链接:http://blog.51cto.com/lavasoft/95141,如需转载请自行联系原作者
相关文章
|
30天前
|
Java Spring
使用JDBCTemplate实现与Spring结合,方法公用 ——测试(EmpDaoImplTest)
使用JDBCTemplate实现与Spring结合,方法公用 ——测试(EmpDaoImplTest)
8 0
|
3月前
|
消息中间件 Java 测试技术
Spring Cloud Alibaba环境问题之测试环境失败如何解决
Spring Cloud Alibaba提供了一套在Spring Cloud框架基础上构建的微服务解决方案,旨在简化分布式系统的开发和管理;本合集将探讨Spring Cloud Alibaba在实际应用中的部署和使用技巧,以及该框架常见问题的诊断方法和解决步骤。
|
4月前
|
存储 Java 测试技术
《Spring 测试指南》:JPA、MockMvc 和 @SpringBootTest 详解
Spring 提供了一组测试工具,可以轻松地测试 Spring 应用程序的各个组件,包括控制器、服务、存储库和其他组件。它具有丰富的测试注释、实用程序类和其他功能,以帮助进行单元测试、集成测试等。
61 0
|
5月前
|
Java 测试技术 数据库
Spring 单元测试(Junit)
Spring 单元测试(Junit)
|
30天前
|
Java Spring
使用spring实现邮件的发送(含测试,源码,注释)
使用spring实现邮件的发送(含测试,源码,注释)
7 0
|
2月前
|
运维 Java 测试技术
spring 单元测试 Junit
spring 单元测试 Junit
42 2
|
3月前
|
Java 测试技术 Spring
spring之单元测试:JUnit
【1月更文挑战第16天】 一、整合JUnit5 1、搭建子模块 2、引入依赖 3、添加配置文件 4、添加java类 5、测试 二、整合JUnit4 1、添加依赖 2、测试
72 4
|
4月前
|
缓存 JSON Java
一文教会你 Spring Boot中的热部署与单元测试(简单易懂,附源码实战)
一文教会你 Spring Boot中的热部署与单元测试(简单易懂,附源码实战)
56 0
|
4月前
|
缓存 Java 关系型数据库
Spring Boot实现RESTful接口架构实战(包括REST的讲解、定义、REST服务测试)
Spring Boot实现RESTful接口架构实战(包括REST的讲解、定义、REST服务测试)
52 0
|
4月前
|
Java 测试技术 数据库
Spring Boot单元测试
Spring Boot单元测试
40 0
Spring Boot单元测试