b()
사용하지 않는 기능을 처음에 추가하지 않는 것이 바람직하기 때문에 더 이상 사용하지 않으면 제거 하는 것이 좋습니다. 당신이 그것을 "가독성"이라고 부르든, 다른 것들과 동등하든 그것은 그것이 사용하지 않는 것을 포함하지 않는 코드를 개선하는 것입니다. 그것을 갖지 않는 것이 더 나은 적어도 하나의 특정 조치를 취하기 위해, 그것을 제거하면 그 변경 후의 미래 유지 보수 비용이 0임을 보장합니다!
b()
새로운 것으로 대체 할 생각 은 물론 현재 호출하는 모든 코드를 고려해야 b()
하며 테스트는 "모든 코드의 하위 집합 이기 때문에 필자는 실제로 테스트와 함께 제거하는 데 필요한 특별한 기술을 찾지 못했습니다. ".
일반적으로 나를 위해 작동하는지 추론의 라인이 시점에서 내가 그 통지 곳이다 f()
만들었다 b()
따라서 오래된 b()
적어도되지해야한다, 나는 모든 전화를 찾기 위해 찾고 있어요 b()
호출로 대체 의도로 f()
, I 테스트 코드도 고려하십시오 . 특히, b()
더 이상 필요하지 않은 경우 단위 테스트를 제거 할 수 있으며 제거해야합니다.
더 이상 필요하지 않은 것을 강제로 알려주는 것이 아무것도 없다는 것이 맞습니다 b()
. 그것은 기술의 문제입니다 (슬림이 말했듯이 코드 범위는 높은 수준의 테스트에 대해보고합니다). 기능 테스트가 아닌 단위 테스트 만 참조 b()
하면 게시 된 인터페이스의 일부가 아니므로주의 깊게 낙관 할 수 있으므로 직접 제어하지 않는 코드에 대한 주요 변경 사항은 아닙니다.
레드 / 그린 / 리 팩터 사이클은 테스트 제거를 명시 적으로 언급하지 않습니다. 또한, 제거 b()
하기 위해 구성 요소 가 명확하게 열려 있기 때문에 제거 는 개방 / 폐쇄 원칙을 위반합니다 . 따라서이 단계를 단순한 TDD 외부의 것으로 생각하려면 계속 진행하십시오. 예를 들어, "나쁜"테스트를 선언하는 프로세스가있을 수 있습니다.이 경우이 테스트는 적용해서는 안되는 무언가 (필수 기능 b()
)를 테스트하는 근거에서 테스트를 제거 할 수 있습니다 .
실제로 대부분의 사람들은 아마도 레드 / 그린 / 리 팩터 사이클과 함께 일정량의 재 설계를 수행 할 수있을 것이라고 생각합니다. 리팩토링이 아닙니다. 귀하의 팀은이 결정을 정당화하는 데 얼마나 많은 드라마와 서류 작업이 필요한지를 결정할 수 있습니다.
어쨌든 b()
중요한 경우 기능 테스트가 있었으며 가볍게 제거되지는 않았지만 이미 단위 테스트 만 있다고 말했습니다. 단위 테스트 (변경된 코드의 현재 내부 디자인에 작성)와 기능 테스트 (변경되지 않은 게시 된 인터페이스에 작성)를 제대로 구분하지 않으면보다 신중해야합니다. 단위 테스트 제거에 대해