JUnit4测试数据库“增删改查”2016-04-18 12:06:01
( 1人已投票,[高质量] )
在JUnit4测试数据库时,没发现啥问题,结果却是没有数据变化。明明已经配置'创建事务代理对象'和'自动事务代理'
即<bean id="interceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor"> 和 <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
数据库中还是没有记录。
经大量分析有这么几个现象:
两个测试类:UserTest1.java, UserTest2.java
UserTest1使用注解+JUnit4, UserTest2使用一般的JUnit3
当先运行了UserTest1中的testAddUser()后(DB中没有数据),然后运行UserTest2中的testAddUser()后DB中数据id从2开始。
解决方法:
因为在执行数据时开启了事务,数据被放在iBATIS的一级缓存中,而操作之后没有提交事务。
在测试的方法添加annotation: @Rollback(false) 即可。
上一篇:老外唱中文歌《他说》