你应该如何单元测试DAO层

若你所工作的项目使用到Spring、Hibernate、JPA,并且你想单元测试数据连接层(DAO),这篇文章可能帮到你。

当你打算测试DAO层,你需要连接数据库。但是你被不允许使用已有的数据库。原因可能有这两个,一是你有可能腐败将用来整合测试的数据,二是这数据其他开发组人员所专用的。

为了解决这问题,将用到内存数据库(in-memory database)。内存数据库是个不错选择。原因在于它测试完成后不留痕迹,且每次测试前都能保证数据库是空空的,没有任何表。

单元测试DAO

一个好的DAO测试应该保证数据库在测试前后状态一致。不留新添数据,回滚所有更新。

一、总要创建单元测试指定配置文件

这可以是创建DAO单元测试的第一步。这测试指定配置文件主要有用来测试的数据源信息,也就是用来连接内存数据库,覆盖主配置文件的数据源。譬如,主配置文件application-context.xml的数据源是MySQL,而测试指定配置文件application-context-test.xml的复用application-context.xml,除数据源需要另建为hsqldb内存数据库的外。

application-context-test.xml

<beans xmlns="http://www.springframework.org/schema/beans" ...>

	<import resource="application-context.xml" />

	<bean id="entityManagerFactoryBean"
		class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
		<property name="dataSource" ref="dataSource" 
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值