본문 바로가기
728x90

TDD4

[Java] 테스트가 어려운 코드 최범균님의 '테스트 주도 개발 시작하기'를 읽으면서 정리해본 글. - 모든 코트를 테스트할 수 있는 것은 아님. 1. 하드코딩된 경로 - 예시 public void sync() throws IOException { Path path = Paths.get("D:\\data\\pay\\test.csv"); ...(중략)... } 위 코드에서 파일 경로가 하드코딩 되어 있다. 이 코드를 테스트하려면 해당 경로에 파일이 반드시 위치해야 한다. 만약 윈도우에 D드라이브가 없으면 테스트가 불가능하다. 또한, 윈도우 전용 파일 경로를 사용하고 있기 때문에 맥이나 리눅스로는 테스트가 불가능하다. 2. 의존 객체를 직접 생성 - 예시 // 의존 대상을 직접 생성 private PayInfoDao payInfoDao = .. 2023. 8. 23.
[Java] 자바로 테스트 코드 작성 순서 알아보기 최범균님의 '테스트 주도 개발 시작하기'를 읽으면서 정리해본 글. 1. 초반에 복잡한 테스트부터 시작X 초반부터 다양한 조합을 검사하는 복잡한 상황을 테스트로 추가하면 해당 테스트를 통과시키기 위해 한 번에 구현해야 할 코드가 많아진다. 2. 구현하기 쉬운 테스트부터 시작하기 구현하기쉬운 경우부터 시작하면 빠르게 테스트를 통과시킬 수 있다. 보통 수 분에서 십여 분 이내에 구현을 완료해서 테스트를 통과시킬 수 있을 만큼 쉬운 것을 선택한다. 3. 예외 상황을 먼저 테스트 다양한 예외 상황은 복잡한 if-else 블록을 동반할 때가 많다. 예외 상황을 전혀 고려하지 않은 코드에 예외 상황을 반영하려면 코드의 구조를 뒤집거나 코드 중간에 예외 상황을 처리하기 위해 조건문을 중복해서 추가하는 일이 벌어진다. .. 2023. 7. 24.
[Java] 자바로 TDD 시작하기 최범균님의 '테스트 주도 개발 시작하기'를 읽으면서 정리해본 글. 1. TDD 이전의 개발 1. 만들 기능에 대해 설계를 고민한다. 어떤 클래스와 인터페이스를 도출할지 고민하고각 타입에 어떤 메서드를 넣을지 시간을 들여 생각 2. 1번 단계를 수행하면서 구현에 대해서도 고민한다. 대략 어떻게 구현하면 될지 머릿속에 그려지면 코드 작성 3. 기능에 대한 구현을 완료한 것 같으면 기능을 테스트한다. 이 과정에서 원하는 대로 동작하지 않거나 문제가 발생하면 2번 단계에서 작성한 코드를 디버깅 하면서 원인을 찾는다. 2. TDD 맛보기 TDD는 구현이 먼저가 아닌 테스트부터 시작한다. 간단한 덧셈 기능을 TDD로 구현하면 public class CalculatorTest { @Test void plus() { .. 2023. 7. 20.
[Spring] 테스트 코드 적용하기 테스트 코드 적용하기 TDD에 대한 간단한 정리 - 테스트 주도 개발이라는 의미 - 테스트를 먼저 설계 및 구축 후 테스트를 통과할 수 있는 코드를 작성 - 코드 작성 후 테스트를 진행하는 방법 - 애자일 개발 방식 중 하나 코드 설계 시 원하는 단계적 목표에 대해 설정하여 진행하고자 하는 것에 대한 결정 방향의 갭을 줄이고자 함 최초 목표에 맞춘 테스트를 구축하여 그에 맞게 코드를 설계하기 때문에 보다 적은 의견 충돌을 기대할 수 있음(방향 일치로 인한 피드백과 진행 방향의 충돌 방지) 테스트 코드 작성 목적 - 코드의 안정성을 높일 수 있음 - 기능을 추가하거나 변경하는 과정에서 발생할 수 있는 Side-Effect를 줄일 수 있음 - 해당 코드가 작성된 목적을 명확하게 표현할 수 있음(코드에 불필요.. 2022. 11. 21.
728x90