zoukankan      html  css  js  c++  java
  • SpringBoot使用Junit测试 防止事物自动回滚

           问题:我在测试类中的save方法测试成功通过,但数据库没有插入数据

    测试方法如下:

    1. @Test
    2. @Transactional
    3. // @Rollback(false)
    4. public void saveOne(){
    5. ProductCategory productCategory = new ProductCategory();
    6. productCategory.setCategoryName("优惠单品");
    7. productCategory.setCategoryType(3);
    8. ProductCategory productCategory1 = productCategoryRepository.saveAndFlush(productCategory);
    9. log.info(productCategory1.toString());
    10. }

    执行测试方法后,数据库没有插入数据

    原因:springboot中使用junit编写单元测试,@Transactional默认是事物回滚的,这样测试的脏数据不影响数据库。具体看控制台输出也能看来:

    所以这里为了验证测试方法save是否正确应该关闭自动事物回滚,使用@Rollback(false)关闭回滚。

    1. @Test
    2. @Transactional
    3. @Rollback(false)
    4. public void saveOne(){
    5. ProductCategory productCategory = new ProductCategory();
    6. productCategory.setCategoryName("优惠单品");
    7. productCategory.setCategoryType(3);
    8. ProductCategory productCategory1 = productCategoryRepository.saveAndFlush(productCategory);
    9. log.info(productCategory1.toString());
    10. }

    运行测试方法,控制台输出如下:

    数据库也插入了对应的数据。最后吐槽一下,Spring Data JPA这破玩意真不好用,底层还是Hibernate,各种坑吧!

    原文地址:https://blog.csdn.net/PORSCHE_GT3RS/article/details/81417287
  • 相关阅读:
    tr 字符转换命令
    Log4cpp配置文件及动态调整日志级别的方法
    Ubuntu使用总结
    vim安装与配置(进阶版)
    [转载] Linux CC与GCC的区别
    C语言基础总结
    VIM之ctags & Taglist 插件
    vim之基础配置
    使用问题:Chrome卡死崩溃
    Ubuntu16.10安装之后的软件安装
  • 原文地址:https://www.cnblogs.com/jpfss/p/10956525.html
Copyright © 2011-2022 走看看