devmeeple / test-in-action

TypeScript로 배우는 테스트 코드 실험실
0 stars 0 forks source link

[Day 16] Mock을 마주하는 자세 #9

Open devmeeple opened 1 month ago

devmeeple commented 1 month ago

7.3 @Mock, @Spy, @InjectMocks

7.3.1 @Mock

7.3.2 @InjectMocks

7.3.3 @Spy

결론

devmeeple commented 1 month ago

7.3 @Mock, @Spy, @InjectMocks

<참고 자료>

devmeeple commented 1 month ago

테스트는 왜 필요한가요?

우선 고민해야 하는 내용이다. 사람은 비용의 한계가 있다. 함께 자라는 소프트웨어의 속도를 따라잡기란 불가능하다.

테스트는 소프트 웨어의 핵심 가치 '변화'에 우연하게 대응하기 위해 필요하다. 컴퓨터의 도움을 받는다.

하지만 테스트 코드 또한 비용이 필요하다. 잘못된 테스트 코드는 오히려 생산성을 감소시킨다. 따라서 어떻게 테스트 코드를 잘 작성할 수 있을까? 알아보자.

단위 테스트

JUnit 작은 단위란 무엇인가 해피 케이스 경계 케이스 제어할 수ㅜ없는 것에 의존 어떻게 용이하게 현재시간 랜덤값

TDD

영역을 자연스럽게 분리하게 된다. 테스트 하기 쉬운 코드, 쉽게 발견하기 어려운 엣지 케이스를 고민하게 한다. 클라이언트 관점에서 코드를 고민할 수 있게 돕는다.

테스트는 문서다

강조하고 또 강조한다. 왜 문서여야 하냐, 우리는 '팀 이니깐'.... 쿠버네티스 인용

디스플레이 네임 섬세하게 BDD 언어가 사고를 제한한다.

실무에서

그래서 어떻게 실무에서 적용해야 하나요? 레이어별 관심사가 다르니 테스트가 필요하다.

통합 테스트는 무엇인가? 단위 테스트로 검증하지 못하는 부분, 결합된 객체를 검증한다.

저장소와 서비스는 통합테스트로 작성한다.

통합 테스트를 부정적으로만 바라봤는데 다른 관점에서 바라보는 계기가 됐다.