Spring中使用HSQLDB测试ibatis的dao
    ???????? 项目是用Spring+ibatis+jsp开发,一直再看敏捷开发方面的文章,虽然没有做到TDD,也没有做到事后测试,和每个方法都测试,但是也是在一直向这个方向努力,也在努力构建可测试的系统而努力。以前都是在测试一些工具类,现在努力在各个方面构建测试,努力做到自己的成果都是测试过的。 一直以来,数据库方面的测试都是比较困难的,特别是一些SQL语句是否正确,还有就是数据库中数据的不稳定性导致测试不可预见性。
??????? 从网上找了很多文章,都是HSQLDB测试Hibernate的 ,ibatis的找了很多都没有找到,只能自己一点点摸索,现在基本上稳定了,也可以了。写下来,经验共享一下,也让大家指点一下。废话少说,上代码。
????? 结构Controller + logic(业务代码)+DAO(基本上只用一个工具类DAO)
先看DAO代码,基本上也没有做什么,只是继承了Spring的SqlMapClientDaoSupport
java 代码
    - ? 
 
    - ? 
 
    - ? 
 
    - ?? 
 
    - public?class?DefaultDAO?extends?SqlMapClientDaoSupport?{ ?? 
 
 
 
?
Logic基本上就是调用DAO进行一些操作,和一些业务代码,没有什么可介绍的。
下面介绍测试logic的测试基类
java 代码
java 代码
    - import?java.io.Reader; ?? 
 
    - ?? 
 
    - import?junit.framework.TestCase; ?? 
 
    - ?? 
 
    - import?org.springframework.jdbc.datasource.DriverManagerDataSource; ?? 
 
    - import?org.springframework.jdbc.datasource.SingleConnectionDataSource; ?? 
 
    - import?org.springframework.orm.ibatis.SqlMapClientFactoryBean; ?? 
 
    - ?? 
 
    - import?propertity.config.SystemConfig; ?? 
 
    - ?? 
 
    - import?com.ibatis.common.resources.Resources; ?? 
 
    - import?com.ibatis.sqlmap.client.SqlMapClient; ?? 
 
    - import?com.ibatis.sqlmap.client.SqlMapClientBuilder; ?? 
 
    - ?? 
 
    - public?abstract?class?DefaultLogicTest?extends?TestCase?{ ?? 
 
    - ?? 
 
    - ????private?SingleConnectionDataSource?m_dataSource; ?? 
 
    - ????private?SqlMapClient?m_sqlMapClient;??? 
 
    - ????private?DefaultDAO?m_dao; ?? 
 
    - ????protected?void?setUp()?throws?Exception?{ ?? 
 
    - ????????super.setUp(); ?? 
 
    - ????????
 
   
                        
                     
                    
                    
                        免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。