한마디로 정의하자면..
(소프트웨어 개발 방법론/애자일 개발 방식 중 하나)
❗️선 개발 후 테스트 방식이 아닌 선 테스트 후 개발이라고 생각하면 된다.
1. 테스트 케이스 작성(기능 구현하지 않았으니 무조건 실패) /red
2. 테스트 케이스를 통과하는 코드 작성 /green
3. 코드 리팩토링 /redactor
-> 123 무한 반복하는게 핵심 (에자일 개발 방식)
그래도 장점은 있다!
그 외 잡지식
→ java 진영의 대표적인 test framework
→ 단위 테스트(unit test를 위한 도구 제공)
→ 🤷🏻♀️ 그럼 통합 테스트는 뭔데? 비즈니스 로직 자체를 테스트
→ 어노테이션 기반으로 테스트 지원
→ 모듈로는 junit vintage, jupiter, platform 있음
애자일? 1~4주 사이의 짧은 주기로 반복적이고 점진적인 개발을 통해 변화에 민첩하게 대응
모듈화? 구성 단위. 예를 들 부품 하나를 내가 원할 때 끼웠다 뺄 수 있는거. 반대말은 일체화
프로젝트에 TDD를 도입하자고 패기넘치게 시작했지만 그건 뭣도 모르는 사람들의 패기였다... 아직도 테스트코드한테 뚜드려맞고있다...
심지어 내 실력이 부족해서 TDD의 장점도 잘 못느끼고 있다.
한 20년 전부터 TDD개념이 나왔다던데 왜 이제야 유행했는지 알 것 같다. 누가 프로젝트에 TDD를 도입한다 하면 부모의 원수라도 한 번쯤 말릴 것
- tdd가 유행하면서 spring에 테스트 모듈이 추가되었다고 한다! 유행에 민감한듯