TDD3 [TDD] 7. 테스트가 가능한 설계 작성자 : 김정호 실습 환경 - Java 17 - Spring Boot 3.0.1 - wsl 2 테스트가 어려운 코드 개발을 진행하다 보면 테스트할 수 없는 상황이 발생하게 된다. 어떤 경우가 있는지 살펴보도록 하자. 하드 코딩된 경로 존재 의존 객체를 직접 생성 정적 메서드 사용 실행 시점에 따라 달라지는 결과 역할이 섞여있는 코드 그 외 메서드 중간에 소켓 통신 코드가 포함 콘솔에서 입력받거나 결과를 콘솔에 출력 테스트 대상이 사용하는 의존 대상 클래스나 메서드가 final -- 이 경우 대역으로 대체 어려울 수 있음 테스트 대상의 소스를 소유하고 있지 않아 수정 어려움 하드 코딩 & 의존 객체 직접 생성 예시 public class PaySync { // 의존 객체를 직접 생성하고 있다. priva.. 2023. 3. 3. [TDD] 3. TDD ∙ 기능 명세 ∙ 설계 작성자 : 박소정 실습 환경 - Java 11 - Spring Boot 2.7.7 🥨 기능 명세 사용자에게 제공할 기능을 구현하기 위해서는 기능 명세를 시작으로 설계를 진행해야 한다. 기능은 크게 입력과 결과로 나누어 생각할 수 있다. 입력: 기능을 실행하는데 필요한 값 결과: return 값, exception, 변경(DB에 데이터 추가해 시스템의 상태 변경 등) 기능 명세를 통해 입력과 결과를 도출하면, 해당 내용을 통해 기능의 이름, 파라미터, 리턴 타입 등을 손쉽게 결정할 수 있다. 이렇게 도출한 기능 명세를 코드에 반영하고, 이는 곧 기능에 대한 설계 과정과 연결된다. 🥨 설계 과정을 지원하는 TDD TDD는 테스트 코드 작성 - 코드 구현 - 리팩토링의 과정을 반복한다. 이때, 테스트 코드 작.. 2023. 1. 21. [TDD] 1. TDD 시작 작성자 : 김정호 실습 환경 - Java 17 - Spring Boot 3.0.1 - wsl 2 TDD란? TDD는 테스트부터 시작한다. 우선 테스트를 작성하고, 그 후에 구현을 진행하게 된다. 책에 나온 예시로 함께 살펴보도록 하겠다. CalculatorTest ... import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; public class CalculatorTest { @Test void plus() { assertEquals(2, Calculator.plus(1, 1)); // 현재 정적 메서드로 설계함. } } TDD로 개발할 때 가장 먼저 해야 할 일은 테스트 코드를 작성하는.. 2023. 1. 6. 이전 1 다음