2009-12-08 2 views
2

ConcreteService가 필자에게 필요한 유일한 비 테스트 구현이라고 가정합니다. 그것에 의존하는 객체를 테스트 할 수있는 목적을 위해서만 인터페이스를 추출하거나 메소드/속성 가상을 만들 수 있습니까? 그렇지 않으면 의존성 라인을 새롭게 만들어야합니다. 종속성 라인을 종속성 테스트 할 때마다 분기점까지 (내가 mock을 삽입 할 수있을 때까지)해야합니다.인터페이스를 테스트 용으로 만 사용해도 괜찮습니까?

답변

2

이것은 완전히 정상입니다.

테스트를 수행하지 않더라도 초기에 인터페이스를 도입 할 때 많은 이점이있을 수 있으며, 종종 선호하는 것이라고 말하고 싶습니다.

프로젝트 수명주기 초기 인터페이스를 코딩하면 ConcreteService를 호출하는 코드가 대신 인터페이스를 호출 할 수 있습니다. 그런 다음 새로운 서비스 구현을 도입하려는 경우 필요한 변경 량을 줄였습니다 그것을 사용하십시오.

1

디자인이 정확히 무엇인지 확실하지 않습니다. 어쨌든 추상화를 테스트 할 필요가있는 것처럼 들리면 인터페이스로 연결하는 것이 좋습니다.

관련 문제