2014-02-10 1 views
1

MVVM 아키텍처를 사용하고 있고 프리즘을 응용 프로그램에서 사용하고 있습니다. 다음은 IresourceManager를 설정하는 데 사용한 코드의 종류입니다. 이 연습이 좋은지 또는 Dependency Injection으로 가야하고 ResourceManager가 매번 매개 변수로 생성자 안에 전달되는지 알려주십시오. 이제 순서대로 장치에 DI 접근법을 사용하는 가장 좋은 방법 1. (가 다시 사용되는 경우) 다른 곳에서이 방법을 그대로 유지하고 단위 테스트 2입니다 클래스를 테스트코드를 만드는 가장 좋은 방법은 단위 테스트 가능

public SapUploadScriptInfo(XDocument scriptDoc) : this() 
{ 
    this.resourceManager = ServiceLocator.Current.GetInstance<IResourceManagerService>(); 
    this.scriptDoc = scriptDoc; 
    this.CreateFromXml(scriptDoc); 
} 

. 이제 순서대로 장치에 DI 접근법을 사용하는 가장 좋은 방법 1. (가 다시 사용되는 경우) 다른 곳에서이 방법을 그대로 유지하고 단위 테스트> 2 인 클래스를 테스트

답변

2

.

  • 은 첫째, 당신이 정말로 더 이상 단위 테스트를 수행하지 않는 : 당신이 (다른 함수 다음을 호출의 일환으로) 다른 곳에서이 방법을 테스트하려고하면

는 몇 가지 문제가 있습니다. 함수 호출 결과를 테스트하는 중이라면 우연히 IResourcemanager 클래스도 테스트해야합니다.

  • 두 번째로 테스트 사례 관리가 문제가됩니다. 따라서 각 기능에 대한 테스트가 어디에 있는지 분명히하고 싶습니다. 하지만 이제는 테스트가 실제로이 함수를 사용하는 다른 클래스에 앉아있는 경우가 있습니다.
  • 이와 같이 나는 의존성 주입 방식을 권장합니다. IResourceManager는 테스트 스위트를 실행하는 동안 IResourceManager를 인스턴스로 가져와 전달해야하는 경우 즉시 해킹 할 수 있습니다.

    관련 문제