[워밍업 클럽 4기 백엔드] 4주차 발자국
              
              
              
              
              4개월 전
            
            [ 배운 내용 정리 ]
📝[ Test Double ]
Dummy: 실제로 동작 하지 않지만, 파라미터를 채우기 위해 필요한 객체
Fake: 동작은 하지만 테스트를 위해 간소화된 코드
Stub: 테스트 중에 호출할 경우 특정 반환 값을 설정 가능 하고 값을 검증 할때 사용
Mock: Stub과 같이 테스트 중 호출할 경우 특정 값을 반환 가능 하고 행위를 검증 할때 사용
Spy: 객체의 일부분은 실제로 동작 하고 일부분은 동작 하지 않게 설정 하는 방법
📝[ 테스트 독립 보장 ]
각 테스트는 서로 영향을 끼치면 안된다.
영향을 끼치게 될 경우 테스트가 의도한 대로 동작 하지 않을 수 있다.
그러므로 각 테스트의 DB를 @BeforeEach, deleteAllInBatch를 통해 제거 하거나
테스트 코드에 @Transactional을 통해 롤백 하여 격리 할 수 있다.
📝[ 테스트 환경 통합 하기 ]
테스트의 환경이 조금 이라도 다를 경우 스프링 서버를 다시 띄워야 한다.
그러므로 추상 클래스를 통해서 같은 환경을 제공 한다면 스프링 서버가 그만큼 적게 떠서 시간적으로 이득이 있다.
[ 미션 회고 ]
테스트를 할때 @Mock, @MockBean, @Spy, @SpyBean 어노테이션을 어떤 차이점이 있는지
깊게 생각 하지 않고 @MockBean 사용 했었다.
미션을 통해 Test Double의 종류와 어떻게 사용 해야 할지 고민할 수 있어서 좋았습니다.
또한 @BeforeEach 어노테이션을 각 테스트에 적용 하면 코드의 중복을 줄일 수 있다는점을 알게 되었습니다.
댓글을 작성해보세요.
