[워밍업 클럽 4기 백엔드] 4주차 발자국

[ 배운 내용 정리 ]

 

📝[ Test Double ]

Dummy: 실제로 동작 하지 않지만, 파라미터를 채우기 위해 필요한 객체

Fake: 동작은 하지만 테스트를 위해 간소화된 코드

Stub: 테스트 중에 호출할 경우 특정 반환 값을 설정 가능 하고 값을 검증 할때 사용

Mock: Stub과 같이 테스트 중 호출할 경우 특정 값을 반환 가능 하고 행위를 검증 할때 사용

Spy: 객체의 일부분은 실제로 동작 하고 일부분은 동작 하지 않게 설정 하는 방법

 

📝[ 테스트 독립 보장 ]

각 테스트는 서로 영향을 끼치면 안된다.

영향을 끼치게 될 경우 테스트가 의도한 대로 동작 하지 않을 수 있다.

그러므로 각 테스트의 DB를 @BeforeEach, deleteAllInBatch를 통해 제거 하거나

테스트 코드에 @Transactional을 통해 롤백 하여 격리 할 수 있다.

 

📝[ 테스트 환경 통합 하기 ]

테스트의 환경이 조금 이라도 다를 경우 스프링 서버를 다시 띄워야 한다.

그러므로 추상 클래스를 통해서 같은 환경을 제공 한다면 스프링 서버가 그만큼 적게 떠서 시간적으로 이득이 있다.

 

[ 미션 회고 ]

테스트를 할때 @Mock, @MockBean, @Spy, @SpyBean 어노테이션을 어떤 차이점이 있는지

깊게 생각 하지 않고 @MockBean 사용 했었다.

미션을 통해 Test Double의 종류와 어떻게 사용 해야 할지 고민할 수 있어서 좋았습니다.

또한 @BeforeEach 어노테이션을 각 테스트에 적용 하면 코드의 중복을 줄일 수 있다는점을 알게 되었습니다.

 

댓글을 작성해보세요.

채널톡 아이콘