springboot中junit回滚

发表于:2017-10-30 15:32

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:梦想修补师    来源:51Testing软件测试网采编

  springboot中使用junit编写单元测试,并且测试结果不影响数据库
  pom引入依赖
  如果是IDE生成的项目,该包已经默认引入。
          <dependency>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-test</artifactId>
              <scope>test</scope>
          </dependency>
  数据库原始数据
  原始数据
  编写单元测试
  package com.mos.quote;
  import com.mos.quote.model.Area;
  import com.mos.quote.service.IAreaService;
  import org.junit.Assert;
  import org.junit.Test;
  import org.junit.runner.RunWith;
  import org.springframework.beans.factory.annotation.Autowired;
  import org.springframework.boot.test.context.SpringBootTest;
  import org.springframework.test.annotation.Rollback;
  import org.springframework.test.context.junit4.SpringRunner;
  import org.springframework.transaction.annotation.Transactional;
  import java.util.List;
  @RunWith(SpringRunner.class)
  @SpringBootTest
  public class QuoteApplicationTests {
      @Autowired
      private IAreaService areaService;
      @Test
      public void contextLoads() {
      }
      @Test
      public void testUpdate(){
          Area area = new Area();
          area.setCode("001003");
          area.setName("洛阳市");
          Integer result = areaService.update(area);
          Assert.assertEquals(1, (long)result);
      }
      @Test
      @Transactional
      @Rollback
      public void testUpdate4Rollback(){
          Area area = new Area();
          area.setCode("001001");
          area.setName("郑州市123");
          Integer result = areaService.update(area);
          Assert.assertEquals(1, (long)result);
      }
  }
  结果数据
  结果数据
  结论
  可以看出code=001001的数据没有更改,而code=001003的数据修改成功。回头看代码:
  @Transactional表示该方法整体为一个事务,
  @Rollback表示事务执行完回滚,支持传入一个参数value,默认true即回滚,false不回滚。
  该注解一样支持对类的注解,若如此做,对整个class的方法有效。
  注解在class上
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号