2014-01-15 3 views
1

단위 테스트를 위해 서비스를 모의하려고 할 때 문제가 있습니다. 내가 가진 내 테스트 클래스에서Symfony 내 단위 테스트에서 특정 메소드 모의

, 내 서비스에

$mock = $this->getMock('MyClass'); 
    $mock->expects($this->any())->method('method_2')->will($this->returnValue('fake_value')); 

, method_2() 다른 방법을 호출 내가 단위 테스트를 원하는대로

(의이 method_1() '를 가정 해 봅시다) only method_1() 모의 만해야합니다 method_2() 그러나이 테스트를 실행하는 경우 method_1()은 이미 null을 반환합니다.

왜 이미 null이 발생하는지 알고 계십니까?

답변

1

는 두 번째 인수로 방법의 배열을 전달할 수 있습니다, getMock() helper signature를 살펴 보자, 그 방법은 다음 조롱하고 반환된다 null (당신이 valus을 정의하지 않는 한 그들의 각 하나가 반환해야합니다)

에서 귀하의 경우 모든 방법을 조롱하고 null을 반환 method_2() 제외한 반환 값을 강제로. 다시 시도 및 대체

에 의해

$mock = $this->getMock('MyClass'); 

,

$mock = $this->getMock('MyClass', array('method_2')); 
관련 문제