Test

    [Unit Testing] 단위 테스트 구성 방법

    포스팅에서 다룰 내용본 게시글은 Unit Testing 도서 중 3장을 정리하였습니다.단위 테스트 구조좋은 단위 테스트 명명법매개변수화된 테스트 작성Fluent Assertions 사용 단위 테스트를 구성하는 방법AAA패턴을 사용하기준비-실행-검증 세 부분으로 구성된 패턴이다.준비 : SUT와 해당 의존성을 원하는 상태로 만들기실행 : SUT에서 메소드를 호출하고 준비된 의존성을 전달하며 출력 값을 캡처하기검증 : 결과를 검증하기이 패턴은 모든 테스트가 균일한 구조를 가질 수 있도록 한다. 따라서 전체 테스트 스위트의 유지 보수 비용이 적게 든다.유사한 패턴으로 Given-When-Then 패턴이 있다.준비부터 테스트를 작성하는 것이 일반적이나 TDD를 실천할 때에는 아직 기능이 어떻게 동작할지 알지 못..

    [Unit Testing] 단위 테스트에서의 런던파와 고전파

    포스팅에서 다룰 내용본 게시글은 Unit Testing 도서 중 2장을 정리하였습니다.단위 테스트란?공유 의존성, 비공개 의존성, 휘발성 의존성 간의 차이점단위 테스트의 두 분파 : 고전파 vs 런던파단위 테스트, 통합 테스트, 엔드 투 엔드 테스트의 차이점 단위 테스트의 정의단위 테스트는작은 코드 조각을 검증하고빠르게 수행하고격리된 방식으로 처리하는 자동화된테스트이다. 이때 작은 코드 조각은 단일 클래스 또는 클래스 내의 메소드를 가리킨다. 다음 정의 중 3번째 정의에서 고전파와 런던파를 구분할 수 있다.격리 문제에 대한 런던파의 접근코드 조각을 격리된 방식으로 검증한다는 것은 런던파에서 테스트 대상 시스템을 협력자에게서 격리하는 것을 일컫는다. 즉 하나의 클래스가 다른 클래스 또는 여러 클래스에 의존..

    [Unit Testing] 단위 테스트 소개 (목표, 커버리지 지표)

    포스팅에서 다루는 내용본 게시글은 Unit Testing 도서를 정리하였습니다.단위 테스트의 상태단위 테스트의 목표좋지 않은 테스트 스위트의 결과테스트 스위트 커버리지 지표성공적인 테스트 스위트의 속성 단위 테스트 현황현재 기업용 어플리케이션 개발 프로젝트의 상당수는 좋은 코드 커버리지를 달성하고 있다. 제품 코드 : 테스트 코드 비율을 1:1 ~ 1:3까지 맞춘다. 따라서 우리는 이제 ‘좋은 단위 테스트를 작성하는 것은 어떤 의미인가?’를 고민해야 한다. 단위 테스트의 목표코드를 단위 테스트하기 어렵다면 코드 개선이 반드시 필요하다는 것을 의미한다. 보통 강결합에서 저품질이 나타나 따로 테스트 하기 어렵다. 하지만 단위 테스트를 할 수 있다 해서 반드시 코드 품질이 좋은 것을 의미하지는 않는다. 낮은 ..