10 회원 도메인과 레포지토리 테스트
회원 레포지토리 테스트 케이스
MemoryMemeberRepositoryTest.java
- 테스트 케이스
package hello.hellospring.repository;
import hello.hellospring.domain.Member;
import hello.hellospring.repository.MemberRepository;
import hello.hellospring.repository.MemoryMemberRepository;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.util.List;
import java.util.Optional;
public 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();
//검증1
System.out.println("result = "+(result==member));
//검증2
Assertions.assertEquals(member,result);
//다를 경우
//Assertions.assertEquals(member,null);
//검증3
}
@Test
public void findByName(){
Member member1 = new Member();
member1.setName("spring1");
repository.save(member1);
Member member2 = new Member();//shift+f6: rename
member2.setName("spring2");
repository.save(member2);
Member result = repository.findByName("spring1").get();//get()을 쓰면 Optional을 한번 까는 것
Assertions.assertEquals(member1,result);
}
@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();
Assertions.assertEquals(result.size(),2);
}
}
-
한번에 테스트 실행 시 순서는 일정하지 않음
-
해결방안: Test가 하나 끝나면 데이터를 클리어 시켜줘야 한다.
-
clearStore(): 메서드 하나가 실행된 후 저장소를 비움
MemoryMemeberRepository.java
public void clearStore(){
store.clear();
}
MemoryMemeberRepositoryTest.java
@AfterEach
public void afterEach(){//메서드가 끝날 때마다 실행되는 메서드: 콜백메서드
repository.clearStore();
}
코드 규모가 커질수록 테스팅 없이 개발 불가능
Tip) 테스트 주도 개발(TDD: Test Driven Development): 테스트 케이스 틀을 먼저 만들고 개발을 진행하는 방식
Author And Source
이 문제에 관하여(10 회원 도메인과 레포지토리 테스트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yh_lee/10-회원-도메인과-레포지토리-테스트저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)