2014-09-03 3 views
1

그래서 기본적으로 컨트롤러에 내 의존성을 모의하려고 노력 중이며 ordered() 조롱의 기능을 사용하려고합니다.조롱 주문 된 조롱

$request = \Mockery::mock('Silhouette\Http\Request'); 
    $response = \Mockery::mock('Silhouette\Http\Response'); 
    $response->shouldReceive("setContent")->ordered(); 

    $db = \Mockery::mock('Dabble\Database'); 

    $configData = \Mockery::mock('Silhouette\Configuration\ConfigurationData'); 
    $configData->shouldReceive("get")->andReturn(array(18, 23))->ordered(); 

위의 테스트하여 $configData->get()가 컨트롤러의 $response->setContent() 전에 호출되는 경우에도 성공적이다. 또한 mock의 순서를 바꾸면 나는 여전히 성공적인 테스트를합니다.

$request = \Mockery::mock('Silhouette\Http\Request'); 

    $db = \Mockery::mock('Dabble\Database'); 

    $configData = \Mockery::mock('Silhouette\Configuration\ConfigurationData'); 
    $configData->shouldReceive("get")->andReturn(array(18, 23))->ordered(); 

    $response = \Mockery::mock('Silhouette\Http\Response'); 
    $response->shouldReceive("setContent")->ordered(); 

내가 여기 잘못 생각한가요? 감사합니다

답변

1

globally() 메서드를 사용하여 다른 모의 작업을 수행하지 않는 한 순서는 동일한 모의에만 적용됩니다.

이이 문서에 설명되어

$request = \Mockery::mock('Silhouette\Http\Request'); 
$response = \Mockery::mock('Silhouette\Http\Response'); 
$response->shouldReceive("setContent")->globally()->ordered(); 

$db = \Mockery::mock('Dabble\Database'); 

$configData = \Mockery::mock('Silhouette\Configuration\ConfigurationData'); 
$configData->shouldReceive("get")->andReturn(array(18, 23))->globally()->ordered(); 

보십시오 :

http://docs.mockery.io/en/latest/reference/expectations.html

+0

이 방법이 유사하게 표시 방법과 관련하여 특정 순서로 호출 될 것으로 예상 함을 선언합니다. 그래서 그들은 같은 조롱 된 객체의 메서드를 의미합니다. 감사! –