Spring Test 整合JUnit 4

  1. 加入依赖包
  2. 创建测试类
    1. 基类
    2. 测试类
  3. 事物始终无法回滚

加入依赖包

<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" 转载请保留原文链接及作者。

目录