Spring-test做数据库操作的单元测试
spring提供了一个做单元测试的方法。我最喜欢的是它的自动事务回滚功能。用起来很爽。
直接看代码
package com.ali.gongyi.model.account; import junit.framework.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.annotation.Rollback; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.transaction.TransactionConfiguration; import org.springframework.transaction.annotation.Transactional; import com.ali.gongyi.dao.BaseDao; /** * @author zhenghui * @version 1.0 * @data 2011-2-11 下午03:22:14 * */ @RunWith(SpringJUnit4ClassRunner.class) //指定测试用例的运行器 这里是指定了Junit4 @ContextConfiguration("classpath:applicationContext.xml") @TransactionConfiguration(transactionManager="transactionManager", defaultRollback=true) @Transactional public class TestUserDao { @Autowired private BaseDao<User, Long> userDao = null; @Test @Rollback(true)//上面已经设置defaultRollback=true。这里其实可以不用写了 public void testModifyUser() { User user = userDao.findById(2L); System.out.println(user.getId()); user.setDisplayName("系统管理员4"); userDao.saveOrUpdate(user); Assert.assertEquals(userDao.findById(2L).getDisplayName(), "系统管理员4"); } }
说明
1 userDao的实现可以是hibernate,也可以是ibatis (这两个我都做了测试,这种方式都是没有问题的)。当然最主要看重的是自动回滚。
2 transactionManager需要自己配置。
相关推荐
shirleypaddy 2020-10-19
qingmumu 2020-10-19
lustdevil 2020-10-18
ganlulululu 2020-10-12
lustdevil 2020-08-03
lustdevil 2020-07-18
lustdevil 2020-06-25
lustdevil 2020-06-21
zhengzf0 2020-06-21
宿命java 2020-06-15
JackYin 2020-06-14
dongxurr 2020-06-07
snowphy 2020-06-06
zhengzf0 2020-05-28
81901836 2020-05-26
Julywhj 2020-05-26