내가 아는 한 나는까지, C #을 사용 TDD를 배우고 시험을 개발 운전해야 하고, 먼저 쓰기를 실패하는 테스트 기입 후 최소한의 다음 리팩토링 않는 테스트를 통과하는 코드를.
그러나 " 구현이 아닌 인터페이스에 대한 프로그램 "이라고 말하면 먼저 인터페이스를 작성하십시오 . 이것은 혼란이 시작되는 곳입니다. 인터페이스를 먼저 작성하면 두 가지를 위반하는 것입니다.
인터페이스 용으로 작성된 코드는 test에 의해 구동되지 않습니다 .
분명히 간단한 클래스로 쓸 수있는 최소한의 것은 아닙니다 .
인터페이스 테스트도 작성해야합니까? 구현하지 않고 테스트 할 내용은 무엇입니까?
이 질문이 유감스럽게 들리지만 완전히 혼란 스럽습니다. 문자 그대로 너무 많이 가져갈 수 있습니다.
contract
. 예를 들어 추상 클래스의 형태 일 수 있지만 인스턴스화 할 수 없어 가상 클래스 / 메서드가 아니어야합니다.
interface
모든 것을 사용한다는 의미는 아닙니다 . A는class
당신이 구현 세부 사항 숨길 수 있기 때문에 또한, 인터페이스를 제공private
변수를.