11장. 단위 테스트 안티 패턴
11장. 단위 테스트 안티 패턴 비공개 메서드 단위 테스트 전혀 하지 말아야 된다 비공개 메서드와 테스트 취약성 단위 테스트를 하려고 비공개 메서드를 노출하는 경우에는 식별할수 있는 동작만 테스트하는 것을 위반한다 비공개 메서드와 불필요한 커버리지 죽은 코드다 추상화가 누락되어 있다 비공개 메서드 테스트가 타당한 경우 비
11 posts
11장. 단위 테스트 안티 패턴 비공개 메서드 단위 테스트 전혀 하지 말아야 된다 비공개 메서드와 테스트 취약성 단위 테스트를 하려고 비공개 메서드를 노출하는 경우에는 식별할수 있는 동작만 테스트하는 것을 위반한다 비공개 메서드와 불필요한 커버리지 죽은 코드다 추상화가 누락되어 있다 비공개 메서드 테스트가 타당한 경우 비
10장. 데이터베이스 테스트 통합 테스트라는 퍼즐의 마지막 조각은 프로세스 외부 관리 의존성이다. 가장 일반적인 예는 애플리케이션 데이터베이스다 실제 데이터베이스를 테스트하면 회귀 방지가 아주 뛰어나지만 설정하기 쉽지 않다 데이터베이스 테스트를 위한 전제 조건 형상 관리 시스템에 데이터베이스 유지 개발자마다 별도의 데이터
9장. 목 처리에 대한 모범 사례 목은 테스트 대상 시스템과 의존성 간의 상호 작용을 모방하고 검사하는 데 도움이 되는 테스트 대역이다 목은 비관리 의존성에만 적용해야 된다 목의 가치를 극대화하기 비관리 의존성에만 목을 사용하게끔 제한하는 것이 중요하지만 이는 목의 가치를 극대화 하기 위한 첫 번째 단계일 뿐이다 시스템
8장. 통합 테스트를 하는 이유 단위 테스트에만 전적으로 의존하면 시스템이 전체적으로 잘 작동하는지 확신할 수 없다 단위 테스트가 비즈니스 로직을 확인하는데 좋지만 비즈니스 로직을 외부와 단절된 상태로 확인하는 것만으로는 충분하지 않다 통합 테스트는 무엇인가? 통합 테스트의 역할 단위 테스트는 세가지 요구사항을 충족하는
7장. 가치 있는 단위 테스트를 위한 리팩터링 좋은 단위 테스트 스위트의 속성 개발 주기에 통합돼 있다 코드베이스 중 가장 중요한 부분만을 대상으로 한다 최소한의 유지비로 최대의 가치를 끌어낸다 가치 있는 테스트 가치 있는 테스트 작성하기 리팩터링할 코드 식별하기 코드의 네 가지 유형 복잡도 또는 도메인 유의성 코드 복잡
6장. 단위 테스트 스타일 단위테스트 스타일 출력 기반 테스트 가장 품질이 좋음 상태 기반 테스트 두번째 통신 기반 테스트 가장 품질이 낮음 단위 테스트의 세 가지 스타일 출력 기반 테스트(output based testing) 상태 기반 테스트(state based testing) 통신 기반 테스트(communicati
5장. 목과 테스트 취약성 런던파는 테스트 대상 코드 조각을 서로 분리하고 불변 의존성을 제외한 모든 의존성에 테스트 대역을 써서 격리하고자 한다 고전파는 단위 테스트를 분리해서 병렬로 실행할 수 있게 하자고 한다 테스트 간에 공유하는 의존성에 대해서만 테스트 대역을 사용한다 목과 스텁 구분 테스트 대역의 종류 목(moc
4장. 좋은 단위 테스트의 4대 요소 좋은 단위 테스트 스위트의 특성 개발 주기에 통합돼 있다 코드베이스의 가장 중요한 부분만을 대상으로 한다 최소한의 유지비로 최대 가치를 끌어낸다 가치 있는 테스트 식별 가치 있는 테스트 작성 좋은 단위 테스트의 4대 요소 자세히 살펴보기 회귀 방지 리팩터링 내성 빠른 피드백 유지 보수
3장. 단위 테스트 구조 단위 테스트를 구성하는 방법 AAA(arrange act assert) 패턴 사용 3A 패턴은 테스트를 준비(arrange), 실행(act), 검증(assert) 세 단계로 나누는 것을 의미한다. AAA 패턴은 스위트 내 모든 테스트가 단순하고 균일한 구조를 갖는데 도움이 된다 일관성이 이 패턴의
2장. 단위 테스트란 무엇인가 고전파(classical school)는 단위 테스트와 테스트 주도 개발에 원론적으로 접근하는 방식 런던파(London school)는 단위 테스트와 테스트 주도 개발에 실용적으로 접근하는 방식 ‘단위 테스트’의 정의 단위 테스트의 속성 작은 코드 조각을 검증하고 빠르게 수행하고 격리된 방식
1장. 단위 테스트 목표 단위 테스트를 배우는 것은 테스트 프레임워크나 목 라이브러리등과 같은 기술적인 부분을 익히는 것에 그치지 않는다 단위 테스트를 매우 많이 작성하더라도 많은 버그와 유지비로 프로젝트 진행이 느려지게 된다 단위 테스트 현황 대부분의 프로그래머는 단위 테스트를 실천하고 중요성을 알고 있다 보통 제품코드