Spring 통합 테스트

2022. 12. 15. 00:21스파르타 내일배움캠프/Spring 강의 정리

Spring을 사용하여 Test를 실행하는(DB 연동 포함) 방법이 있다.

@SpringBootTest
@Transactional
class MemberServiceIntegrationTest {

    @Autowired MemberService memberService;
    @Autowired MemberRepository memberRepository;
    
    @Test
    public void 회원가입() throws Exception {
        //Given
              Member member = new Member();
              member.setName("hello");
        //When
              Long saveId = memberService.join(member);
        //Then
              Member findMember = memberRepository.findById(saveId).get();
              assertEquals(member.getName(), findMember.getName());
    }
}

이런 식으로 @SpringBootTest 어노테이션을 붙여주면 된다.

또한 테스트시에는 필드에 DI를 두어도 상관이 없다(필드를 중간에 수정하지 않을 것이므로)

 

@SpringBootTest : 스프링 컨테이너와 테스트를 함께 실행한다.

   @Transactional : 테스트 케이스에 이 애노테이션이 있으면, 테스트 시작 전에 트랜잭션을 시작하고, 테스트 완료 후에 항상 롤백한다. 이렇게 하면 DB에 데이터가 남지 않으므로 다음 테스트에 영향을 주지 않는다.

 

 

 

 

 

 

 

'스파르타 내일배움캠프 > Spring 강의 정리' 카테고리의 다른 글

Spring project  (0) 2022.12.16
JPA & Spring Data JPA  (0) 2022.12.16
Spring MVC 기초 & JDBC Template  (0) 2022.12.13
Spring Bean  (0) 2022.12.12
memo 프로젝트  (0) 2022.12.10