Open devmeeple opened 1 month ago
@Mock
, @Spy
, @InjectMocks
ts-mockito
글을 작성해 주셨다. 이 외에도 jest-mock-extended
도 들었던 것 같다. (인프런 발표) 함께 사용법을 알아보자.<참고 자료>
우선 고민해야 하는 내용이다. 사람은 비용의 한계가 있다. 함께 자라는 소프트웨어의 속도를 따라잡기란 불가능하다.
테스트는 소프트 웨어의 핵심 가치 '변화'에 우연하게 대응하기 위해 필요하다. 컴퓨터의 도움을 받는다.
하지만 테스트 코드 또한 비용이 필요하다. 잘못된 테스트 코드는 오히려 생산성을 감소시킨다. 따라서 어떻게 테스트 코드를 잘 작성할 수 있을까? 알아보자.
JUnit 작은 단위란 무엇인가 해피 케이스 경계 케이스 제어할 수ㅜ없는 것에 의존 어떻게 용이하게 현재시간 랜덤값
영역을 자연스럽게 분리하게 된다. 테스트 하기 쉬운 코드, 쉽게 발견하기 어려운 엣지 케이스를 고민하게 한다. 클라이언트 관점에서 코드를 고민할 수 있게 돕는다.
강조하고 또 강조한다. 왜 문서여야 하냐, 우리는 '팀 이니깐'.... 쿠버네티스 인용
디스플레이 네임 섬세하게 BDD 언어가 사고를 제한한다.
그래서 어떻게 실무에서 적용해야 하나요? 레이어별 관심사가 다르니 테스트가 필요하다.
통합 테스트는 무엇인가? 단위 테스트로 검증하지 못하는 부분, 결합된 객체를 검증한다.
저장소와 서비스는 통합테스트로 작성한다.
통합 테스트를 부정적으로만 바라봤는데 다른 관점에서 바라보는 계기가 됐다.
7.3
@Mock
,@Spy
,@InjectMocks
7.3.1
@Mock
@Mock
은Mockito.mock
을 편리하게 사용할 수 있게 도와준다.@ExtendWith(MockitoExtension.class)
를 추가해야 기능을 활성화 한다. (선언하기)7.3.2
@InjectMocks
@Mock
으로 선언한 객체의 의존성을 추가할 때 사용한다.7.3.3
@Spy
Stub
하고 싶을 때 사용한다.결론
@Mock
은 자주 사용한다. 상대적으로@Spy
는 조금 덜 사용한다.