2011-08-12 2 views
0

내가 다음과 같은 것을하고 있다고 가정하고 Letter이 각각 $data으로 초기화되도록 테스트하려고합니다.이런 종류의 코드를 어떻게 테스트 할 수 있습니까?

public someMethod() 
{ 
    for ($i = 0; $i < 5; $i++) 
    { 
     $letter = new Letter($data); 
     $letter->send(); 
    } 
} 

내가 지적하고 싶었 주요 문제는 완전히 someMethod() 호출에 캡슐화 5 글자가입니다. 그들은 메소드의 범위를 벗어나지 않으므로 반환 값을 테스트 할 수 없으며 둘 이상이 있으므로 종속성 주입이 옵션으로 보이지 않습니다.

답변

4

의존성 주입이 가능합니다 : (. 나는이 있어야 할 어떤 언어 모르겠어요 때문에 의사 코드)

public someMethod($letterFactory) 
{ 
    for ($i = 0; $i < 5; $i++) 
    { 
     $letter = $letterFactory->create($data); 
     $letter->send(); 
    } 
} 

귀하의 단위 테스트는 다음의 모의 구현을 제공 할 수 있습니다 $letterFactory, 모의 Letter 개체를 생성합니다.

관련 문제