1
내 응용 프로그램에서는 대부분의 클래스가 Base 클래스에서 상속됩니다. 또한 데이터 처리를위한 저장소 클래스가 있습니다.유닛 테스트 - 기본 클래스 생성자에 저장소를 전달하는 나쁜 습관
private IMyRepository _rep;
public MyViewModel()
: this(new MyRepository())
{ }
public MyViewModel(IMyRepository rep)
{
_rep = rep;
DoStuff();
}
그러나 어떤 좋은 이유가 - 테스트 가능성 또는 기능의 측면에서 - 내가이에 모든 것을 이동하지 않도록 :
것은 그들을 검증하기 위해, 나는 내 수업에이 일을 했어요 기본 클래스를 누른 다음 파생 클래스에 DoStuff()를 추가하기 전에 상속 된 생성자에서 내 저장소를 가져 오기 위해 실행하십시오. 의 base class로부터 상속 한 모든 클래스는 같은 저장소 형 또는
IRepository<ElementType>
를 얻을 당신이 MyBaseClase<ELementtype>
같은 genric 매개 변수를 사용하는 경우를 사용하는 경우
감사합니다. 기본 클래스에는 저장소가 직접 필요하지 않지만 동시성 문제를 피하기 위해 모든 클래스가 동일한 저장소를 사용하는 데 유용한 인스턴스가 응용 프로그램에 있습니다. 모든 클래스는 동일한 저장소 유형을 사용합니다. –