반응형
▶ src/test/java/hello.hellospring.repository 패키지를 생성하고 MemoryMemberRepositoryTest 파일 생성
▶ @AfterEach : 한번에 여러 테스트를 실행하면 메모리 DB에 직전 테스트의 결과가 남아 다음 테스트가 실패할 수 있는데, 이 문제점을 해결하고자 테스트가 종료될 때마다 기능을 수행하고 메모리 DB에 저장된 데이터를 삭제함
▶ Assertions.assertThat(member).isEqualTo(result) : member에 저장된 값과 result에 저장된 값이 동일(참)한지 판단
package hello.hellospring.repository;
import hello.hellospring.domain.Member;
//import org.junit.jupiter.api.Assertions;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Test;
import java.util.List;
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
public class MemoryMemberRepositoryTest {
MemoryMemberRepository repository = new MemoryMemberRepository();
@AfterEach
public void afterEach(){
repository.cleareStore(); // 테스트가 끝날 때마다 저장소 지움
}
@Test
public void save(){
//given
Member member = new Member();
member.setName("spring");
//when
repository.save(member);
//then
Member result = repository.findById(member.getId()).get();
//Assertions.assertEquals(result, member);
Assertions.assertThat(member).isEqualTo(result);
}
@Test
public void findByName(){
//given
Member member1 = new Member();
member1.setName("spring1");
repository.save(member1);
Member member2 = new Member();
member2.setName("spring2");
repository.save(member2);
//when
Member result = repository.findByName("spring1").get();
//then
assertThat(result).isEqualTo(member1);
}
@Test
public void findAll(){
//given
Member member1 = new Member();
member1.setName("spring1");
repository.save(member1);
Member member2 = new Member();
member2.setName("spring2");
repository.save(member2);
//when
List<Member> result = repository.findAll();
//then
assertThat(result.size()).isEqualTo(2);
}
}
반응형
'Spring > inflearn' 카테고리의 다른 글
회원 서비스 테스트 (0) | 2022.08.25 |
---|---|
회원 서비스 개발 (0) | 2022.08.24 |
회원 domain과 repository 만들기 (0) | 2022.08.22 |
API (0) | 2022.08.21 |
MVC와 템플릿 엔진 (0) | 2022.08.20 |