2. 테스트
프로젝트를 할 때 구현 클래스를 만들고 난 뒤 테스트를 진행 해줘야 한다
1. MemberRepository 인터페이스
2. MemoryMemberRepository 구현 클래스
3. MemoryMemberRepositoryTest 테스트 클래스
@AfterEach는 해당 @Test가 끝나면 무조건 실행되는 메소드
Test에서 중요한 점은 다른 메소드와 연계되서 실행되면 오류가 발생 할 수 있다
예를 들어, findAll을 보자
<--
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.assertThat(result.size()).isEqualTo(2);
}
-->
위와 같은 메소드 실행 시
- Member 객체 생성 = 변수명 member1
- member1 안의 String Name 변수에 "spring1"를 입력
- repository.save로 저장
- List result = repository.findALL( );
4번은 List에 repository.findALL을 입력시킨다
findALL 메소드를 보자
public List<Member> findAll() {
return new ArrayList<>(store.values());
}
store.values()의 값을 ArrayList에 넣어서 List로 넣어준다
store[Map].values()는 Map은 바로 List나 Set에 넣을 수 없다
그렇기 때문에 Map을 Collection 객체로 변환 시켜서 넣어줘야되고
가장 많이 List로 변화시키는 방법이
List list = new ArrayList(Map.values())
로 변환시켜서 값을 넣어준다
Assertions.assertThat(result.size()).isEqualTo(2);
는 result.size로 findALL에 들어있는 값의 갯수를 확인하고 그것이 2개 인지 isEqualTo로 확인한다
이런식으로 테스트를 진행하면 된다
성공적으로 모든 Test 메소드가 실행 될 시 이런 식으로 녹색 버튼 만이 활성화 되나
오류가 나올시 오류가 생긴 테스트 메소드에 빨간 버튼이 생기고 지금 현재 2개의 Value가 들어있는데 해당 메소드의 isEqualTo( ) 에 3을 넣어서 오류를 발생시키자
findALL( ) 메소드에 오류가 생겼음을 알려준다
Author And Source
이 문제에 관하여(2. 테스트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@tkdqhr6777/2.-테스트저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)