전파 및 이론 정리, 리마인드 겸 작성 한다.
테스트 주도 개발은 테스트가 주도하는 개발 방법론이다. 자동화된 테스트로 개발을 이끌어 나가는 방식
단순 규칙만 따른다.
- 오직 자동화된 테스트가 실패한 경우에만 새로운 코드를 작성.
- 중복을 제거.
TDD와 단위테스트를 혼돈 하는 경우가 있지만 TDD의 결과물이 단위테스트 일 뿐 TDD와 단위트세트는 목적이 다르다.
비즈니스 로직을 먼저 구현하고 단위테스트를 작성 했더니 코드 설계, 모듈들 간에 의존성 등에서 여러가지 문제점이 발생하여 유지보수가 힘들어진다. 이를 테스트를 먼저 작성하여 설계가 좋은 코드를 만들 수 있지 않을까라는 것에서 시작된 것이 TDD
TDD 개발 방법론이고 설계/ 관점에서 이해 해야하고 TDD는 테스트 케이스를 먼저 작성하고 비즈니스 로직 구현
- 먼저 실패하는 테스트 코드를 작성 (RED)
- 테스트코드를 성고하기 위한 설제 코드를 작성(GREEN)
- 중복코드 제거, 일반화 등의 리팩토링을 수행(BLUE)
위 3가지를 반복 하여 코드 작성
테스트 케이스를 먼저 정의하면 좋은점
유닛 단위 테스트를 하려면 유닛간의 종속서을 끊어낼 수 있도록 설계되어 있어야 하기 떄문
종속성의 커플링이 약한 설계가 유지보수가 좋다고 할 수 있는데 결국 단위 테스트 작서을 통해 자연스레 커플링이 약한 좋은 설계를 얻어 낼수 있다.(TDD 순수 단위테스로 존재X)
실제로 작서을 해보면 일정관리에서 오는 리소스 부담이 커서 적용이 어려운 경우가 많다. 혹은 기획이나 요구사항이 미흡하여 테스트 케이스를 만들기 어려운경우도 있고..
그럼에도 불구하고 내가 느끼기에는 단위테스트를 작성 함으로써 추후 테스트 시간을 단축하기때문에 적절히 잘 적용하면 좋을듯 하다.
'코드 > 테스트 코드 작성 방법론' 카테고리의 다른 글
단위테스트(Unit test) AAA (arrange, act, assert) 패턴 (0) | 2024.03.29 |
---|