시작하기전 : JUnit 5 (5.5버전) 을 바탕으로 작성 JUnit 5 모듈 구성Junit 5는 크게 세 개의 요소로 구성되어 있다.JUnit 플랫폼테스팅 프레임워크를 구동하기 위한 런처와 테스트 엔진을 위한 API를 제공JUnit 주피터((Jupiter)JUnit 5를 위한 테스트 API와 실행 엔진을 제공JUnit 빈티지(Vintage)JUnit 3과 4로 작성된 테스트를 JUnit 5 플랫폼에서 실행하기 위한 모듈을 제공한다. JUnit 5는 테스트를 위한 API로 주피터 API를 제공한다. @Test 애노테이션과 테스트 메서드public class SumTest{ @Test void sum(){ int result = 2 + 3; assertEquals(5, resul..
테스트 주도 개발
기능 명세설계는 기능 명세로부터 시작한다.스토리보드를 포함한 다양한 형태의 요구사항 문서를 이용해서 기능 명세를 구체화 한다.구체화 하는 동안 입력과 결과를 도출하고 이렇게 도출한 기능 명세를 코드에 반영한다. 설계과정을 지원하는 TDD테스트 코드를 작성하는 와중에 필요한것들을 작성하다보면 TDD 자체가 설계는 아니지만 이 과정에서 일부 설계를 진행하게 된다. 필요한 만큼 설계하기 테스트를 통과할 만큼만 코드를작성한다.이는 설계에도 동일하게 적용된다.TDD는 미리 앞서서 코드를 만들지 않으므로 불필요한 구성 요소를 덜 만들게 된다. 기능 명세 구체화테스트 코드를 작성하기 위해 개발자는 기능 명세를 정리해야 한다.
테스트 코드 작성 순서1. 쉬운 경우에서 어려운 경우로 진행2. 예외적인 경우에서 정상인 경우로 진행 초반에 복잡한 테스트부터 시작하면 안 되는 이유테스트를 통과시키기 위해 한 번에 구현해야 할 코드가 많아진다. 구현하기 쉬운 테스트부터 시작하기가장 구현하기 쉬운 경우부터시작하면 빠르게 테스트를 통과시킬 수 있다.한 번에 구현하는 시간이 짧아지면 디버깅할 때 유리하다 예외 사항을 먼저 테스트해야 하는 이유초반에 예외 상황을 테스트하게 되면 코드 완성이후에 예외상황을 반영할때 코드 구조가 덜 바뀔수 있다. 완급 조절처음 TDD를 접할때1. 정해진 값을 리턴2. 값 비교를 이용해서 정해진 값을 리턴3. 다양한 테스트를 추가하면서 구현을 일반화순서로 하는것이 좋다. 지속적인 리팩토링테스트를 통과한 뒤에는 리..
TDD 이전의 개발설계 -> 개발 -> 테스트 -> 디버깅과정으로 이루어져 한번에 작성한 코드가 많을 수록 디버깅 시간이 길어졌다. TDD란?1. 말그대로 테스트를 먼저 하는것.2. 테스트를 먼저한다는 것이란, 기능이 올바르게 동작하는지 검증하는 테스트 코드를 작성한다는것을 의미3. 가장 근본부터 테스트 후 작성해나가면서 점진적으로 기능을 완성해야한다.4. 첫번째 테스트는 모든 규칙을 충족하거나 충족하지 않는경우가 있는데 모든 규칙을 충족하지 않는 경우는 사실상 구현을 다 하고 테스트 하는 방식과 다르지 않기 때문에모든 규칙을 충족하는경우로 하는것이 좋다.5. 테스트 -> 코딩 -> 리팩토링의 무한반복으로 점진적으로 기능을 완성해 나가는 것이 TDD의 흐름