首页 > 软件测试/ 正文
Dao层的测试实践
2012-10-24 07:50:11 ℃1、Dao单元测试的问题
Dao层主要工作是数据库访问,是非常重要的模块。为了保证SQL的正确执行,单元测试是必须的。但是一直以来Dao层的单元测试很难进行,主要因为几个问题
1)单元测试必须是执行隔离的环境代码,而隔离数据库非常困难,不得不放弃这个念头。所以Dao层需要和数据库直接打交道,但是单元测试要求每次重复的动作结果都是一致,但是由于外部数据库环境的问题,测试环境无法稳定。
2)现阶段的Dao层一般都会利用Spring的容器组装Dao对象,在辅以一些Support对象。这样的结果就是没有Spring容器,无法测试Dao。
3)每个测试之前,数据库必须处于一个稳定的已知的状态,这就需要数据准备,而单元测试的数据如果要手工插入到数据库中,工作量过大。
4)测试用例必须有断言,我们需要通过断言来判断数据是否插入数据,每个字段是否相同,这个如果没有辅助工具,而手工去一个个断言,工作量不能接受的
2、解决方案
为了解决以上问题,我们选择了Unitils来集成Spring、Dbunit等,完成Dao层的单元测试工作,并和Maven工程结合完成配置。
Unitils的使用很简单,以下面的一个例子来说明。
Dao的代码很简单,是查询、更新一个用户的账户信息
Java代码
public class AccountDao extends JdbcDaoSupport { public Account getAccount(String accountId) { list = getJdbcTemplate().query("select account_id,balance from tb_account where account_id=?", @Override public int updateAccount(String accountId, int balance) { |
1)Maven的POM文件修改
在Dao工程中的POM文件加入如下
Java代码
<dependency> <groupId>org.unitils</groupId> <artifactId>unitils-dbunit</artifactId> <version>${unitils.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.unitils</groupId> <artifactId>unitils-spring</artifactId> <version>${unitils.version}</version> <scope>test</scope> </dependency> |
unitils.version目前最新的为3.3版本
- 上一篇:浅谈随机测试
- 下一篇:一个简单的自动化测试架构的实现(C#)
更多安卓系统培训教材,java,计算机培训学校,2013计算机考研学校,计算机维修培训,计算机学校相关文章
- J2ME编程程序开发平台的概念
- 基于Java开发:关于类设计技巧的四点建议
- 五个月的软件测试工作感想
- 我是怎样长大的(二)——软件测试这一路
- 浅谈基于watir的前端敏捷测试
- 敏捷测试的开发流程
- 敏捷测试的组织挑战
- 系统安全:三步测试防火墙
- 奇虎360软件测试笔试题
- 软件质量管理之痛
- CMMI过程我们所不得不面对的困难
- 软件测试计划模板
- 如何保证软件质量
- 怎样把QA的工作做好?
- 测试结果分析和质量报告
- 评审技术在高质量软件开发中的应用分析(下)
- 如何让质量和进度双赢
- 同行评审那些事儿(九):最佳实践(1)
- 关于同行评审
- 软件质量是什么
- 测试工作管理与规范
- SATA与IDE的区别是什么
- DOS 命令集锦——最常用命令
- 桌面东西多会影响电脑速度吗?
- 论坛中常见缩写用语(二)
- 粉碎文件的基本原理及解析
- 操作系统知识
- 在开发dwr+struts的时候会报错误,不知道你遇到了吗
- 怎么在短期的时间内学会软件开发技术呢
- 解读成为高大尚程序员的几个人生阶段?
- 搜索
-
- 热门标签