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);
	}

-->
위와 같은 메소드 실행 시

  1. Member 객체 생성 = 변수명 member1
  2. member1 안의 String Name 변수에 "spring1"를 입력
  3. repository.save로 저장
  4. 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())

로 변환시켜서 값을 넣어준다

  1. Assertions.assertThat(result.size()).isEqualTo(2);

는 result.size로 findALL에 들어있는 값의 갯수를 확인하고 그것이 2개 인지 isEqualTo로 확인한다

이런식으로 테스트를 진행하면 된다

성공적으로 모든 Test 메소드가 실행 될 시 이런 식으로 녹색 버튼 만이 활성화 되나

오류가 나올시 오류가 생긴 테스트 메소드에 빨간 버튼이 생기고 지금 현재 2개의 Value가 들어있는데 해당 메소드의 isEqualTo( ) 에 3을 넣어서 오류를 발생시키자

findALL( ) 메소드에 오류가 생겼음을 알려준다

좋은 웹페이지 즐겨찾기