한번에 여러 테스트를 실행하면
메모리 DB에 직전 테스트의 결과가 남을 수 있다.
이렇게 되면 다음 이전 테스트 때문에 다음 테스트가 실패할 가능성이 있다.
@AfterEach 를 사용하면
각 테스트가 종료될 때 마다 이 기능을 실행한다.
여기서는 메모리 DB에 저장된 데이터를 삭제한다.
테스트는 각각 독립적으로 실행되어야 한다.
테스트 순서에 의존관계가 있는 것은 좋은 테스트가 아니다.
테스트케이스를 작성하고 각각 하나씩 돌려볼 수 있다. 초록불이 뜨면 정상작동
하나씩 작동했을땐 모두 정상이였지만, 전체를 한번에 돌렸을때 테스트 실패 이럴때를 대비해 작성하는 것이 @AfterEach이다.
우선 테스트이기때문에 인터페이스말고 구현한 클래스로 바꾸어 객체를 만든다.
해당 MemoryMemberRepository 클래스에 코드를 작성한다.
public void clearStore() {
store.clear();
}
테스트에 코드를 작성한다.
@AfterEach
public void afterEach(){
repository.clearStore();
}
이제 전체 한번에 돌려도 정상 작동한다!
테스트 코드 작성하는 것도 아주 중요하고 심도있게 공부해야한다고 하셨다. 지금은 이렇게 테스트를 작성하는구나하고 이해하는 수준인데 재밌었다.
jpa기술도 더 깊게 배우고 , 테스트도 깊게 배우고 싶다.
지금은 시작단계니까 조금씩 깊게 배우면서 이 분야에서 점점 성장해나갈 나의 모습이 기대가 된다. python보다 spring을 활용한 개발이 나한테 찰떡인듯 하다. 재미있는걸 보니>,<
출처 : 김영한팀장의 인프런강의
작은 것부터 독점하라 - 책 zero to one
인텔리제이 test만드는 단축키 : ctrl + shift + t
자동으로 틀 생성까지 해줌.
덕분에 유익한 정보 감사합니다~!