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(); ??
- ????????
免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。