test 아래에 repository 패키지 만들고 테스트하고자 하는 클래스 이름+Test으로 클래스 생성 후 테스트 케이스 작성
package hello.hello_spring.repository;
import hello.hello_spring.domain.Member;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
class MemoryMemberRepositoryTest {
MemoryMemberRepository repository = new MemoryMemberRepository();
@Test
public void save(){
Member member = new Member();
member.setName("spring");
repository.save(member);
Member result = repository.findById(member.getId()).get();
assertThat(member).isEqualTo(result);
}
@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();
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(3);
}
}
*실행 결과


하나의 테스트가 끝날 때마다 공용 데이터를 깔끔하게 지워줘야 한다.
*MemoryMemberRepository에 아래 코드를 추가하고,
public void clearStore(){
store.clear();
}
MemoryMemberRepositoryTest에
@AfterEach
public void afterEach(){
repository.clearStore();
}
코드를 추가하면 순서 의존이 사라진다.
김영한 강사님의 '스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술'을 듣고 정리한 것입니다.
'Spring Boot' 카테고리의 다른 글
[스프링 입문] 컴포넌트 스캔과 자동 의존관계 설정 (0) | 2024.06.27 |
---|---|
[스프링 입문] 회원 서비스 개발, 테스트 (0) | 2024.06.27 |
[스프링 입문] 회원 도메인과 리포지토리 만들기 (0) | 2024.06.27 |
[스프링 입문] API (0) | 2024.06.27 |
[스프링 입문] 스프링 웹 개발 기초, MVC와 템플릿 엔진 (0) | 2024.06.27 |