Spring - repository 테스트
2022. 9. 14. 14:30
리포지토리를 생성을 해봤으니 테스트를 해봐야 합니다.
테스트는 스프링에게 굉장히 중요한 작업이라고 합니다.
TDD 라고 테스트 주도 개발 이라는 말이 있을 정도로 테스트의 중요성이 큽니다.
테스트를 하기 위해서 똑같은 구조로 만드는 것이 좋습니다.
MemoryMemberRepositoryTest Class 를 만들고 리포지토리에서 만들었던 함수들을 하나씩 실행해 봅니다.
MemoryMemberRepository repository = new MemoryMemberRepository();
repository 라는 새로운 객체를 만들어줍니다.
@Test
public void save(){
Member member = new Member();
member.setName("myname");
repository.save(member);
Member result = repository.findById(member.getId()).get();
assertThat(result).isEqualTo(member);
}
@Test 를 이용해서 test를 실행할 수 있습니다.
Assertions.assertThat( A ).isEqualTo(B) 를 이용해 A가 B랑 같은지 확인할 수 있습니다.
틀리게 되면 오류가 납니다.
나머지 함수들도 확인해줍니다.
@Test
public void findByName(){
Member member1 = new Member();
member1.setName("spring1");
repository.save(member1);
Member member2 = new Member();
member2.setName("spring2");
repository.save(member2);
Member result = repository.findByName("spring1").get();
System.out.println(result);
assertThat(result).isEqualTo(member1);
}
@Test
public void findAll(){
Member member1 = new Member();
member1.setName("spring1");
repository.save(member1);
Member member2 = new Member();
member2.setName("spring2");
repository.save(member2);
List<Member> result = repository.findAll();
assertThat(result.size()).isEqualTo(2);
System.out.println(result);
}
Test를 한번에 실행하게 되면 순서가 정해져 있지 않기 때문에 오류가 날 것입니다.
그래서 모든 함수들을 순회할 때 마다 실행해주는 방법이 아래와 같습니다.
@AfterEach
public void afterEach(){
repository.clearStore();
}
@AfterEach 로 함수들을 실행시킬 때마다 초기화할 수 있습니다.
'Spring' 카테고리의 다른 글
Spring - 서비스 & 테스트 (0) | 2022.09.14 |
---|---|
Spring - 도메인 & 리포지토리 만들기 (0) | 2022.09.14 |
Spring - 응답방법 (0) | 2022.09.14 |
첫 Spring (0) | 2022.09.14 |