답변:
단위 테스트 는 테스트 할 때 TDD 를 테스트 하는 것을 말합니다 .
둘은 직교입니다.
단위 테스트는 개별 행동 단위를 테스트하는 것을 의미합니다. 개별 행동 단위는 개별적으로 개별적으로 테스트 할 수있는 가장 작은 행동 단위입니다. (나는 그 두 가지 정의가 원형이라는 것을 알고 있지만 실제로는 잘 작동하는 것 같습니다.)
코드를 작성하기 전, 코드를 작성한 후 또는 코드를 작성하는 동안 단위 테스트를 작성할 수 있습니다.
TDD는 테스트가 개발 (및 디자인)을 주도하게하는 것을 의미합니다. 단위 테스트, 기능 테스트 및 승인 테스트를 통해이를 수행 할 수 있습니다. 일반적으로 세 가지를 모두 사용합니다.
TDD의 가장 중요한 부분은 중간 D 입니다. 당신은 시험이 당신을 운전 하게했습니다 . 테스트를 마치면 수행 할 작업, 다음에 수행 할 작업을 알려줍니다. API가 무엇인지, 디자인이 무엇인지 알려줍니다. (이것은 중요합니다 : TDD는 먼저 테스트를 작성하는 것이 아닙니다. 먼저 테스트를 작성하지만 TDD를 연습하지 않는 많은 프로젝트가 있습니다. 먼저 테스트를 작성하는 것이 테스트가 개발을 주도하게하는 전제 조건입니다.)
테스트 중심 개발을 수행하지 않고도 단위 테스트를 수행 할 수 있습니다. 그러나 단위 테스트를 사용하지 않으면 테스트 중심 개발을 수행 할 수 없습니다.
전통적인 단위 테스트 를 할 때는 코드를 작성한 후 테스트 를 작성하십시오.
테스트 주도 개발 방식은 코드 를 작성 하기 전에 단위 테스트 를 작성하는 것입니다.
간단한 단위 테스트와 비교하여 TDD (IMHO)의 가장 흥미로운 장점 :
TDD 및 단위 테스트는 종종 잘못 사용되는 두 가지 매우 구체적인 용어입니다.
TDD는 실패 할 테스트를 작성하고 실행에 필요한 최소량의 코드를 작성한 다음 코드를 리팩터링하여 정리합니다. 이 작업은 사이클, 실패-> 통과-> 리팩터링으로 수행되며 알려진 각 코드 요구 사항에 대한 새로운 테스트가 추가됩니다. 보다 최근에, TDD는 유사한주기에서 승인 테스트를 작성하는 ATDD (BDD의 서브 세트)와 구별하기 위해 해당주기의 단위 테스트 작성에 대해 더욱 구체적으로되었습니다.
단위 테스트는 작고 격리 된 단위로 코드를 테스트하는 것입니다. 여기서 혼동하는 것은 xUnit 또는 Rspec과 같은 단위 테스트 도구를 사용하는 경우 단위 테스트를 작성하는 테스트를 실행한다고 생각하는 것입니다. 반드시 그런 것은 아닙니다. 이러한 도구를 사용하여 Selenium 프레임 워크를 사용하여 테스트를 실행할 수 있습니다.이 경우 단위 테스트 러너를 사용하여 승인 테스트를 작성합니다. 단위 테스트는 속도를 위해 다른 모든 것으로부터 격리 된 작은 논리에 중점을 둔 테스트입니다 (자주 실행하고 새로운 버그에 대한 빠른 피드백을 얻을 수 있도록).
모든 훌륭한 답변. 단위 테스트는 '단위'를 작은 구성 요소로 간주하는 반면 TDD는 통합 및 승인 테스트를 포함하도록 확장됩니다.
(일부 TDD 변형은 '단위'를 원하는 기능을 향한 가장 작은 단계로 간주합니다 ...)