문서를 읽은 후 코드를 사용할 사람처럼 코드를 테스트하십시오. 코드를 작성했거나 읽었으므로 가지고있는 지식을 바탕으로 아무것도 테스트하지 마십시오. 코드 가 예상대로 작동 하는지 확인하려고합니다 .
최상의 경우에는 테스트를 예제로 사용할 수 있어야합니다. Python의 doctest가 이에 대한 좋은 예제입니다.
이러한 지침을 따르면 구현 변경이 문제가되지 않습니다.
또한 내 경험상 애플리케이션의 각 "계층"을 테스트하는 것이 좋습니다. 당신은 그 자체로 의존성이없는 원자 단위를 갖게 될 것이고 결국 그 자체가 단위 인 애플리케이션에 도달 할 때까지 다른 단위에 의존하는 단위를 갖게 될 것입니다.
각 계층을 테스트해야합니다. 단위 A를 테스트하여 단위 A가 의존하는 단위 B도 테스트한다는 사실에 의존하지 마십시오 (규칙은 상속에도 적용됩니다.) 이것 역시 구현 세부 사항으로 취급되어야합니다. 자신을 반복하는 것처럼 느낄 수도 있습니다.
한 번 작성된 테스트는 변경 될 가능성이 없지만 테스트하는 코드는 거의 확실하게 변경됩니다.
실제로는 IO 및 외부 세계의 문제도 있으므로 필요한 경우 모의를 만들 수 있도록 인터페이스를 사용하려고합니다.
좀 더 동적 인 언어에서는별로 문제가되지 않습니다. 여기에서 덕 타이핑, 다중 상속 및 믹스 인을 사용하여 테스트 케이스를 작성할 수 있습니다. 일반적으로 상속을 싫어하기 시작하면 아마도 제대로하고있는 것입니다.