몇 년 동안 나는 코드에 대한 단위 테스트를 작성하기에 충분한 시간이 없다는 오해를 받고 있었다. 테스트를했을 때, 그들은 부풀어 오르고 무거운 것들이 필요하다는 것을 알았을 때 단위 테스트를 작성해야한다고 생각하게 만들었 습니다 .
그런 다음 Test Driven Development 를 사용하기 시작했으며 완전한 계시라고 생각했습니다. 나는 이제 단위 테스트를 쓰지 않을 시간이 없다고 확신한다 .
내 경험상 테스트를 염두에두고 개발하면 더 깨끗한 인터페이스, 더 집중된 클래스 및 모듈 및 일반적으로 더 많은 테스트 가능한 SOLID 코드가 생깁니다.
단위 테스트가없고 수동으로 무언가를 테스트해야하는 레거시 코드로 작업 할 때마다 "이 코드에 이미 단위 테스트가있는 경우 훨씬 빠를 것"이라고 계속 생각합니다. 높은 커플 링으로 코드에 단위 테스트 기능을 추가하려고 할 때마다 "이것이 분리 된 방식으로 작성된 경우 훨씬 쉬울 것"이라고 계속 생각합니다.
내가 지원하는 두 개의 실험 스테이션을 비교하고 대조합니다. 하나는 잠시 동안 있었고 많은 레거시 코드를 가지고 있지만 다른 하나는 비교적 새롭습니다.
이전 랩에 기능을 추가 할 때 랩으로 내려 가서 필요한 기능의 의미와 다른 기능에 영향을주지 않고 해당 기능을 추가하는 방법을 통해 많은 시간을 소비하는 경우가 종종 있습니다. 코드는 단순히 오프라인 테스트를 허용하도록 설정되지 않았으므로 거의 모든 것이 온라인으로 개발되어야합니다. 오프라인으로 개발하려고한다면 합리적인 것보다 더 많은 모의 객체 가 생길 것입니다.
최신 랩에서는 일반적으로 책상에서 오프라인으로 개발하여 즉시 필요한 항목 만 조롱 한 다음 실험실에서 짧은 시간 만 보내서 해결되지 않은 나머지 문제를 해결함으로써 기능을 추가 할 수 있습니다. -선.
명확성을 위해 @ naught101이 물 은 이후로 ...
일부 임시 데이터 분석을 통해 실험 제어 및 데이터 수집 소프트웨어를 사용하는 경향이 있으므로 TDD와 수정 제어를 결합하면 기본 실험 하드웨어의 변경 사항과 시간에 따른 데이터 수집 요구 사항의 변경 사항을 모두 문서화 할 수 있습니다.
그러나 탐색 코드를 개발하는 상황에서도 시간이 지남에 따라 이러한 가정이 어떻게 발전하는지 볼 수있는 능력과 함께 가정을 체계화함으로써 큰 이점을 볼 수있었습니다.