테스트코드/ATDD, 클린 코드 with Spring

테스트코드/ATDD, 클린 코드 with Spring

[ATDD, 클린 코드 with Spring 6기] 4주차 정리

1. 개요 1) 테스트 하기 쉬운 코드로 만들기 (영상) 테스트하기 쉬운 코드란? 같은 입력에 항상 같은 결과를 반환하는 코드 외부 상태를 변경하지 않는 코드 테스트하기 쉬운 코드로 만들기 STEP1) 테스트하기 쉬운 코드와 어려운 코드를 분리한다 STEP2) 두 분류의 코드를 최대한 바깥쪽에서 만나게 한다 테스트의 어려움은 안에서 밖으로 전파된다 따라서 테스트하기 쉬운 코드와 어려운 코드를 최대한 바깥쪽에서 만나게 해야 한다 STEP3) 두 분류의 코드가 만나는 지점을 자동 테스트로 검증한다 2) 인수 테스트 리팩터링 기존 인수 테스트의 문제점 테스트의 목적이 다름에도 불구하고 같은 로직을 검증하는 인수 테스트가 생기게 됨 즉, 중복이 발생함 인수 테스트 통합 각 기능 단위로 분산되어 있던 인수 테스트..

테스트코드/ATDD, 클린 코드 with Spring

[ATDD, 클린 코드 with Spring 6기] 3주차 정리

1. 개요 1) 통합 테스트 통합 테스트의 다양한 정의 단위테스트의 조건에 하나라도 부합하지 않으면 통합테스트다 자신이 혼자 만든 것을 확인하는 것은 단위테스트며, 다른 이들과 같이 만든 것을 확인하는 것은 통합테스트다 개별 단위 간의 유기적인 연결을 확인하는 것 → 본 강의에선 이를 통합 테스트로 규정했다 통합 테스트의 넓은 의미와 좁은 의미 넓은 의미: 전체적인 모듈들이 잘 동작하는 지를 검증하는 것 좁은 의미: 각각의 요소들만 잘 동작하는 지를 검증하는 것 (=서로 다른 모듈 간의 통합이 잘 이루어지는지 검증) 2) 관리 의존성 vs 비관리 의존성 관리 의존성 내 애플리케이션을 통해서만 상태를 바꿀 수 있는 것 ex) 내 애플리케이션에만 연결된 DB 실제 환경을 구축해서 통합 테스트를 하는 편이 좋..

테스트코드/ATDD, 클린 코드 with Spring

[ATDD, 클린 코드 with Spring 6기] 2주차 정리

1. 개요 1) 단위테스트와 협력객체 단위테스트의 특징 작은 코드 조각(단위)를 검증한다 빠르게 수행 가능하다 격리된 방식으로 처리한다 통합과 고립(Sociable and Solitary) 협력 객체를 실제 객체로 사용하는지(통합) 또는 Mock 객체로 사용하는지(격리)에 따라 테스트 구현이 달라진다 협력 객체가 없는 단위테스트는 작성하기가 쉽다. 2) 테스트 대역 (Test Double) 실제 객체 대신 사용되는 모든 종류의 객체에 대한 일반 용어 즉, 실제를 가짜로 대체한 것 대역 종류 (참고링크) 1) Stub: 지정한 응답을 주는 객체 (간접 입력) 2) Fake: 의존성 계약을 준수하는 가벼운 구현체 (테스트용 가짜 객체) 3) Mock: 테스트 대상 내부의 행위(상호작용)을 검증 4) Spy:..

테스트코드/ATDD, 클린 코드 with Spring

[ATDD, 클린 코드 with Spring 6기] 1주차 정리

1. 개요 이번에 회사 동기분들과 함께 Next Step에서 진행하는 ATDD, 클린 코드 with Spring 6기에 참여하게 되었다. 과정 속에서 배운 것과 정리할 내용을 남겨두고자 하는데, 아무래도 유료 강의이다 보니 많은 내용을 기재하기는 어려워서 간단하게만 가능할 것 같다. 1) ATDD vs TDD TDD는 단위 테스트를 기반으로, ATDD는 인수 테스트를 기반으로 코드를 작성 및 검증한다 TDD가 "구현한 대로 동작하는가?"에 집중한다면, ATDD는 시나리오 형태의 요구사항에 집중한다 2) 인수테스트(Acceptance Test)란? 명세나 계약의 요구사항이 충족되는지를 확인하는 테스트 작업을 종료시켜도 되는지 검증하는 테스트 3) 블랙박스 테스트 인수테스트는 블랙박스 테스트의 성격을 가지고..

코택
'테스트코드/ATDD, 클린 코드 with Spring' 카테고리의 글 목록