Junit은 springboot에서 단위 테스트를 작성하는 데 사용되며 테스트 결과는 데이터베이스에 영향을 미치지 않습니다.
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); } }
결과 데이터
결과 데이터
결론
알겠습니다. 코드의 데이터가 =001001은 변경되지 않았으며 코드=001003의 데이터가 성공적으로 수정되었습니다. 코드를 다시 보면
@Transactional은 메소드 전체가 트랜잭션임을 의미하고,
@Rollback은 트랜잭션이 실행 후 롤백된다는 것을 의미합니다. 기본값은 true입니다. 롤백하고, 롤백하지 않으려면 false입니다.
이 주석은 클래스에 대한 주석도 지원합니다. 그렇다면 전체 클래스 방법에 효과적입니다.
수업 주석
위 내용은 springboot에서 junit 롤백의 역할은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!