spring结合junit进行单元测试(二)——测试后进行事务回滚
来源:互联网 发布:小程序砸金蛋源码 编辑:程序博客网 时间:2024/05/04 05:04
spring结合junit进行单元测试(二)——测试后进行事务回滚
上篇文章讲述了基本的测试,是一个简单的查询,但是在我们进行测试的时候,更多的时候都需要直接进行数据库的增加更新等操作。那这样是不是就把本来的数据破坏了呢。
spring配合unit进行测试的时候是可以用声明事务的方式进行测试的。下面是一些做法。
1、在spiring的配置文件中增加对数据层的transaction支持。
<!-- 事务注解驱动,标注@Transactional的类和方法将具有事务性 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <!-- 事务注解驱动,标注@Transactional的类和方法将具有事务性 --> <tx:annotation-driven transaction-manager="transactionManager" />
2、在单元测试上面声明使用@Transactional,并且,对Transaction进行配置,下面是代码实现:
package test;import com.xueyou.ssm.service.FirstService;import org.junit.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 static org.mockito.Mockito.*;import java.util.HashMap;import java.util.List;import java.util.Map;/** * Created by wuxueyou on 16/10/25. */@RunWith(value = SpringJUnit4ClassRunner.class)@ContextConfiguration(locations = {"file:src/main/webapp/WEB-INF/spring-mvc/springmvc-servlet.xml", "file:src/main/webapp/WEB-INF/spring-mvc/datasource.xml"})@Transactional@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true)public class MockitohelloTest { public List<String> mockannotationList; @Test public void simpleTest(){ List<String> mockList = mock(List.class); mockList.add("one"); mockList.add("one"); mockList.add("one"); mockList.clear(); verify(mockList).clear(); verify(mockList, atLeast(3)).add("one"); } @Autowired FirstService firstService; @Test public void FirstModelTest(){ Map<String,Object> params = new HashMap<>(); Map<String,Object> resMap = firstService.getJson(params); for (String s : resMap.keySet()) { System.out.println(resMap.get(s)); } Assert.assertEquals(1, resMap.get("resCode")); } @Test// @Transactional 由于上面进行了总体的声明,所以这里不用再次声明// @Rollback(true) public void InsertUser(){ Map<String,Object> params = new HashMap<>(); Map<String,Object> resMap = firstService.insertUser(params); Assert.assertEquals(1, resMap.get("resCode")); }}
这样运行后,查看数据库是没有刚刚插入的内容的。如果想看到真实的插入状态,可以在测试的函数上增加
@Rollback(false)即可。
0 0
- spring结合junit进行单元测试(二)——测试后进行事务回滚
- Spring结合junit进行单元测试
- Spring + JUnit进行单元测试
- spring+junit进行单元测试
- spring jpa整合junit单元测试 ,设置事务自动回滚
- Junit结合Spring对Dao层进行单元测试
- Junit结合Spring对Dao层进行单元测试
- Spring 使用Junit 进行单元测试
- Spring配合Junit进行单元测试
- Spring整合JUnit进行单元测试
- junit对spring进行单元测试
- junit 单元测试事务自动回滚
- android 结合Junit进行测试.
- Spring TestContext 做带事务回滚的JUnit测试
- Ant和JUnit结合进行单元测试
- 使用spring提供的测试功能结合JUnit4进行单元测试
- Junit加载Spring容器作单元测试_添加事务回滚
- Junit加载Spring容器作单元测试_添加事务回滚
- 字符串统计
- centOS6.5安装git2.12步骤
- Linux命令之"chmod"
- ifaker7 ifaker8 ifaer9 支持ios8 ios9的一键新机 超越NZT 超越V8 全新ifaker8s 一键新机 全网最低 自定义igrimace
- C++ 网络连接共享
- spring结合junit进行单元测试(二)——测试后进行事务回滚
- dubbo使用遇到的问题 (旧业务过渡到dubbo)
- Spring 配置文件之配置bean
- 练手小程序2 学生信息管理系统
- jQuery中的自定义动画animate函数中的step基础的解释
- 使用repo下载studio源码
- Django模板路径
- 【策略回归】——对海龟法则的验证
- 矩形嵌套