나는 몇 가지 일을하는이 수업을 썼습니다 (아마도 이것이 단일 책임 원칙을 위반하는 것입니다). 지금은 프로젝트의 다른 부분이 필요 실현 조각 이 논리의 나는 내 원래의 시스템에서 테스트의 클래스를 추출하는 것입니다 노출거야 방법.
테스트 코드를 변경하지 않고도이 작업을 수행 할 수있을 것으로 기대하지만 완료하면 테스트가 더 이상 단위 테스트 가 아니라고 주장 할 수 있습니다. 원래 클래스 와 추출한 클래스를 테스트합니다 . 다시 말해, 하나의 테스트 사례가 있지만 두 개의 시스템이 테스트 중입니다.
완료 한 후 테스트 코드를 리팩터링해야합니까? IE : ExtractedClassTest를 만들고 OriginalClassTest에서 관련 테스트를 모두 이동합니까? 이것은 약간 위험 할 수있는 것처럼 보입니다. 프로세스에서 일부 적용 범위를 잃을 수 있습니다. 테스트를 이동하는 것만 큼 간단하지 않을 수 있으며 작동하는 것으로 알고 있지만 더 이상 작동하지 않을 수있는 테스트 코드를 다시 작성하게됩니다. 기타
반면에 OriginalClassTest를 그대로두면 테스트 유지 관리 문제임을 알 수 있습니다. ExtractedClass의 테스트 위치를 찾는 것은 약간 혼란 스러울 것입니다. 첫 인상은 존재하지 않는다는 것입니다. 생산 코드 리팩토링이 많으면 시간이 지남에 따라 심각한 문제가 될 수 있습니다.
저는 TDD를 처음 사용하므로 전문가의 조언을 원합니다. 감사!