Spring Test 整合JUnit 4
加入依赖包
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.2.9.RELEASE</version>
<scope>test</scope>
</dependency>
等其他 Spring 相关其他依赖包。
创建测试类
基类
用来加载配置文件。
@RunWith(SpringJUnit4ClassRunner.class) //使用junit4进行测试
// 加载配置文件,可以使用通配符 *
// @ContextConfiguration({"/spring/*.xml"}) // 加载 spring 文件夹下所有 xml 文件
@ContextConfiguration({"/spring/app*.xml"})
// 如果加入以下代码,所有继承该类的测试类都会遵循该配置,也可以不加,在测试类的方法加上控制事务
// 下面两个注解可以加在测试类上,或测试方法上。
// @Transactional
// @Rollback(true) // 默认就是true,无论测试通不通过都会已这个为主。true 会回滚。
public class BaseJunit4Test {
}
测试类
public class LogManagerDaoTest extends BaseJunit4Test {
@Resource
private LogManagerDao dao;
@Test
@Transactional // 标明此方法需使用事务
@Rollback(true) // 标明使用完此方法后事务回滚
public void saveTest() {
LogManagerBean bean = new LogManagerBean();
bean.setLogcontent("测试");
dao.insertLog(bean);
}
}
事物始终无法回滚
测试代码如果继承了 AbstractJUnit4SpringContextTests
,在 AbstractJUnit4SpringContextTests
中已经存在事务,并且默认事务是自动提交,它覆盖了后来在方法中配置的事务,另外就是在测试类已经使用了 @RunWith
,所以测试类无需再继承 AbstractJUnit4SpringContextTests
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 bin07280@qq.com
文章标题:Spring Test 整合JUnit 4
文章字数:377
本文作者:Bin
发布时间:2018-04-01, 15:41:33
最后更新:2019-08-06, 00:56:23
原始链接:http://coolview.github.io/2018/04/01/Spring/Spring%20Test%20%E6%95%B4%E5%90%88JUnit%204/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。