读书人

Spring-test干数据库操作的单元测试

发布时间: 2012-08-25 10:06:20 作者: rapoo

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 {@Autowiredprivate 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需要自己配置。

1 楼 bingobird 2011-02-21 不错,配置还比较方便,不知跨库怎么样

读书人网 >其他数据库

热点推荐