테스트케이스 작성시 @AfterEach 사용하기

Youmi Choi (Blake)·2021년 6월 16일
0

PAST

목록 보기
12/21

@AfterEach란?

한번에 여러 테스트를 실행하면
메모리 DB에 직전 테스트의 결과가 남을 수 있다.

이렇게 되면 다음 이전 테스트 때문에 다음 테스트가 실패할 가능성이 있다.

@AfterEach 를 사용하면
각 테스트가 종료될 때 마다 이 기능을 실행한다.

여기서는 메모리 DB에 저장된 데이터를 삭제한다.
테스트는 각각 독립적으로 실행되어야 한다.
테스트 순서에 의존관계가 있는 것은 좋은 테스트가 아니다.

테스트케이스를 작성하고 각각 하나씩 돌려볼 수 있다. 초록불이 뜨면 정상작동
하나씩 작동했을땐 모두 정상이였지만, 전체를 한번에 돌렸을때 테스트 실패 이럴때를 대비해 작성하는 것이 @AfterEach이다.

방법?


우선 테스트이기때문에 인터페이스말고 구현한 클래스로 바꾸어 객체를 만든다.
해당 MemoryMemberRepository 클래스에 코드를 작성한다.

public void clearStore() {
        store.clear();
    }
   


테스트에 코드를 작성한다.

 @AfterEach
    public void afterEach(){
        repository.clearStore();

    }


이제 전체 한번에 돌려도 정상 작동한다!

배운점?

테스트 코드 작성하는 것도 아주 중요하고 심도있게 공부해야한다고 하셨다. 지금은 이렇게 테스트를 작성하는구나하고 이해하는 수준인데 재밌었다.

jpa기술도 더 깊게 배우고 , 테스트도 깊게 배우고 싶다.
지금은 시작단계니까 조금씩 깊게 배우면서 이 분야에서 점점 성장해나갈 나의 모습이 기대가 된다. python보다 spring을 활용한 개발이 나한테 찰떡인듯 하다. 재미있는걸 보니>,<
출처 : 김영한팀장의 인프런강의

번외

  1. 작은 것부터 독점하라 - 책 zero to one

  2. 인텔리제이 test만드는 단축키 : ctrl + shift + t

자동으로 틀 생성까지 해줌.

profile
꾸준함을 통해 완벽을 추구합니다.

1개의 댓글

comment-user-thumbnail
2024년 10월 7일

덕분에 유익한 정보 감사합니다~!

답글 달기