2012-06-21 2 views
0

문제점에 대한 최선의 방법을 찾기 위해 노력하고 있습니다.단위 테스트를 사용하는 세터 또는 생성자 주입

나는 약 5 나에 생성자 주입을 사용하는 거라고 이러한 개체의 총을 가지고 있지만 .....

public void ToBeTested() 
    { 
     ClassForExmaple classForExample = new ClassForExample(); 

     //Other logic..... 
    } 

    public void ToBeTested2() 
    { 
      ClassForExmaple2 classForExample2 = new ClassForExample2(); 

      //Other logic..... 
    } 

등 : 나는 새로운 객체를 생성하는 클래스 내에서 다양한 방법을 이것은 상당히 혼란스러워 보입니다. 그 중 몇 개가 개인 재산을 대신 사용해야합니까, 아니면 다른 방법이 있습니까?

나는이 새로운 호출을 조롱 할 수 있도록이 작업을 수행하고 있습니다.

답변

2

이 경우 생성자 주입을 사용하는 것이 좋습니다. 각 유형의 객체의 단일 인스턴스가있는 것처럼 보입니다. 그렇지 않은 경우, 클래스의 생성자에 팩토리를 삽입하여 필요에 따라 객체를 생성 할 수 있습니다.

저는 개인 자산을 조롱하는 것을 피합니다. 이것에 의지해야하는 경우 대개 테스트 프레임 워크에보다 잘 노출되어야하는 클래스 내에 숨겨진 테스트 가능한 코드가 있음을 의미합니다. 공공 재산을 외부에 드러내는 것이 더 좋을 것입니다.

2

생성자 주입을 사용해야합니다. 의존성이 너무 많아 지저분한 경우에는 테스트 할 클래스가 그렇게하지 않도록 코드를 분리해야합니다.

클래스에 너무 많은 종속성이있는 것은 사용자가 아마도 Single Responsibility Principle을 따르지 않는다는 표시입니다.

즉, 5 가지 종속성 (경우에 따라)이 문제가 될 수 있습니다.

관련 문제