개요스프링 테스트에서 Mock 객체를 써야 할 때는 보통 @MockBean을 많이 사용한다.그러나 @MockBean은 아예 원래 빈을 가짜 객체로 교체하기 때문에, 원래 구현 로직은 전혀 실행되지 않는다. 그에 비해 @SpyBean은 실제 빈을 감싸서(Spy) 일부만 Mocking 하게 도와주는 어노테이션이다.(즉, 원래 로직은 그대로 두되 필요한 메서드만 스텁(stub) 처리할 수 있는 방식이다.)@MockBean → 원래 빈을 전부 Mock으로 교체@SpyBean → 원래 빈을 유지하면서 원하는 메서드만 Mock 처리 그래서 서비스 로직은 그대로 실행하면서, DB 접근이나 외부 API 호출 같은 특정 부분만 가짜 값으로 대체하고 싶을 때 @SpyBean을 사용한다. 이 @SpyBean을 사용할 때는..
Study/Test

TDD(Test Driven Development)란 ? TDD란 “테스트 주도 개발” 이라는 뜻으로, 프로덕션 코드보다 테스트 코드를 먼저 작성해서 테스트가 구현 과정을 주도하는 개발 방법론이다. TDD 과정 (RED-GREEN-REFACTOR) TDD는 아래와 같은 RED - GREEN - REFACTOR 과정을 거치며 프로덕션 코드를 완성해간다. 1단계 : RED 기능을 구현하기 전 테스트 코드를 먼저 작성하고, 테스트를 실행시켜 실패하는 과정을 겪는다. 📌 예시 아래의 코드는 TDD의 RED 과정의 예시로, 음료의 총 금액을 구하는 calculateTotalPrice 메소드의 단위 테스트 코드이다. 현재 calculateTotalPrice 메소드는 구현되지 않았고, 테스트 코드만 작성해놓은 상태이..