템플릿 메서드가 나를 위해 할 수있는 작업을 좋아합니다. 반복적으로 반복 작성해야하는 코드를 크게 단순화하는 데 사용할 수 있기 때문입니다.템플릿 메서드가있는 공동 작업자를 사용하는 테스트 클래스
그러나, 나는 공공 템플릿 메소드가 협력자에 의존하는 클래스를 테스트하기 매우 힘든 시간을 가지고있다. 실제 문제는 가상 일 수 없기 때문에 의존성과 스터 빙을 서브 클래 싱하는 일반적인 방법이 작동하지 않는다는 것입니다.
현재, 내 솔루션은 다음, 지원되는 모든 유형을 포함하는 비 템플릿 인터페이스를 생성 구현 세부로 템플릿을 사용하는 것입니다. 이것은 테스트 가능하지만 많은 클래스를 통과하는 많은 수의 유형에 대해 업데이트하는 것이 지루합니다. 나는 또한 상속 기반의 다형성을 대신 사용하도록 다시 설계 할 수 있다고 생각하지만, 시스템 재 디자인없이 테스트 문제를 해결할 수 있다면 그것을 선호한다.
나는 내 생산 라이브러리 대 내 테스트 라이브러리의 동작을 변경하기 위해 템플릿 특수화를 사용하여 할 수있는 일이있을 수 있습니다 생각했지만, 그 효과 ... 또는 가능하다면 확실하지 않다.그래서, 종속성에서 템플릿 방법을 사용하여 테스트 클래스의 가장 좋은 방법은 무엇입니까?
그게 좋은 생각입니다. Google Mock을 사용하고 있습니다. 테스트중인 클래스를 템플릿으로 바꾸는 것은 여전히 성가시다.하지만 확실히 유력한 대안처럼 들린다. – cgmb