2025/01/24 3

[단위 테스트] 5-2. 목과 테스트 취약성: 통신

블라디미르 코리코프 님의 "단위 테스트" 책을 정리한 포스팅입니다.3. 목과 테스트 취약성 간의 관계육각형 아키텍처도메인애플리케이션의 중심부.비즈니스 로직이 포함되어 있음. 애플리케이션 서비스도메인 계층 위에 있음외부 환경과의 통신을 조정함도메인 클래스와 프로세스 외부 의존성 간의 작업을 조정함 계층간의 관심사 분리전형적인 애플리케이션은 도메인과 애플리케이션 서비스라는 두 계층으로 구성됨책임을 변환하여 알맞게 책임질 수 있도록 하기 단방향 통신애플리케이션 서비스 계층에서 도메인 계층으로 흐르는 의존성 흐름을 규정함애플리케이션 서비스 계층은 도메인 계층에 대해 알고 있음도메인 계층은 외부 환경으로부터 완전히 격리됨 프렉탈전체와 부분이 동일한 패턴이나 구조를 가진다는 개념계층마다 동일한 테스트 목표를 유지 ..

Code 2025.01.24

[단위 테스트] 5-1. 목과 테스트 취약성: 목

블라디미르 코리코프 님의 "단위 테스트" 책을 정리한 포스팅입니다.1. 목과 스텁 구분테스트 대상 시스템과 그 협력자 사이의 상호 작용을 검사할 수 있는 테스트 대역 목외부로 나가는 상호 작용을 모방하고 검사하는 용도SUT가 상태를 변경하기 위한 의존성을 호출하는 상황ex) 메일 호출 스텁내부로 들어오는 상호 작용을 모방하는 용도SUT가 입력 데이터를 얻기 위한 의존성을 호출하는 상황ex) 데이터베이스 조회 스텁으로 상호 작용을 검증하지 말라스텁은 내부로 들어오는 상호 작용만 모방하고 검사하지 않음SUT에서 스텁으로의 호출은 SUT가 생성하는 최종 결과가 아님최종 결과를 산출하기 위한 수단내부 구현 세부 사항에 해당됨이러한 호출을 검증하는 것은 테스트 취약성으로 이어질 수 있음 (과잉 명세) CQSCom..

Code 2025.01.24

[단위 테스트] 4-2. 좋은 단위 테스트의 4대 요소: 이상적인 테스트

블라디미르 코리코프 님의 "단위 테스트" 책을 정리한 포스팅입니다.3. 이상적인 테스트를 찾아서테스트의 가치좋은 단위 테스트의 4대 특성을 곱하여 얻은 결과추정치이며, 테스트 스위트에 테스트를 계속 둘지 여부를 결정할 수 있음임계치를 충족하는 테스트만 두어, 책임을 적절하게 맡도록 해야 함소수의 가치있는 테스트가 평범한 테스트보다 프로젝트 성장에 훨씬 더 효과적 이상적인 테스트를 만들 수 있는가?이상적인 테스트는 네 가지 특성 모두에서 최대 점수를 받는 테스트 모두 만점의 점수를 얻는 테스트는 불가능함회귀 방지, 리팩터링 내성, 빠른 피드백은 상호 배타적이기 때문셋중 하나를 희생해야 나머지 둘을 최대로 할 수 있음 다른 특성에 집중하려고 하나의 특성을 버릴 수 없음곱셈 규칙으로 인해 가치가 0으로 가까워..

Code 2025.01.24