JUnit 4

[SpringBoot] Junit - @SpringBootTest, @Transactional 어노테이션

@SpringBootTest 스프링 컨테이너와 테스트를 함께 실행한다 @Transactional 테스트할 때 DB에 반영된 것들을 테스트가 끝나면 rollback 해주어 DB에 데이터가 남지 않으므로 다음 테스트에 영향을 주지 않는다. 테스트 파일을 만들 경우 스프링 컨테이너 없이 '단위테스트'를 하는 것이 좋은 테스트라고 한다. MemberServiceTest 같은 경우는 단위테스트 class MemberServiceTest { MemberService memberService; MemoryMemberRepository memberRepository; @BeforeEach public void beforeEach(){ memberRepository = new MemoryMemberRepository()..

[Spring Boot] Junit 사용해보기

테스트를 하다가 이런 에러가 발생했다. package hello.hellospring.repository; import hello.hellospring.domain.Member; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import java.util.List; import static org.assertj.core.api.Assertions.*; class MemoryMemberRepositoryTest { MemoryMemberRepository repository = new MemoryMemberRepository(); @Test public void save(){ Member member = new Memb..

junit을 이용한 테스트2

given, when, then 주석 틀 이용하기 @Test void join(){ //given Member member = new Member(); member.setName("hello"); //when Long saveId = memberService.join(member); //then Member findeMember = memberService.findOne(saveId).get(); Assertions.assertThat(member.getName()).isEqualTo(findMember.getName()); } 이런식으로 사용하면 보기 편하다. void duplicateJoin(){ // 중복을 일부러 만들어 테스트해보는 메서드 //given Member member1 = new Mem..

junit을 이용한 테스트 기본 동작

junit은 자바 언어에서 주로 사용되는 테스트하기 위한 프레임워크이다. 내가 test 폴더 안에서 내가 테스트 하고 싶은 것들이 잘 돌아가는지 테스트를 해볼 수 있다. 메서드마다 @Test 어노테이션을 사용하여 만들고 Assertions.assertThat(A).isEqualTo(B); 를 이용하면 A와 B의 결과값이 같은지 알 수 있다. 그리고 Assertions를 static으로 올리면 assertThat을 바로 사용할 수 있다. 하지만 여러 개의 메서드를 한 번에 테스트를 하다보면 오류가 발생한다. 다른 메서드지만 같은 값들이 정의되는 경우 등 겹치는 상황이 있을 수 있기 때문에 메서드가 테스트가 완료되고 나서 해당 메서드들의 공용데이터나 저장소 을 지워주는 역할이 필요하다. 일단 테스트 파일 말..