2014-04-04 3 views
1

결과가있는 배열을 반환하거나 아무런 결과가 없으면 false를 반환하는 메쏘드가 있습니다.PHPSpec 메쏘드가 메쏘드를 반환하는지 물어 보는 방법

필자는이 경우 PHPSpec이 배열이나 거짓을 반환하는지 테스트하지만이 작업을 수행 할 수는 없습니다.

아니면 데이터베이스 쿼리를 모의 해 내 방법에서 분리해야합니까?

답변

4

당신은 우리가 작업 할 수있는 코드가 표시되지하고 있지만 현재의 정합 기 당신을 위해 작동하지 않는 경우, 당신은 새로운 것을 만들 수 있습니다

function it_should_return_array_or_false() 
{ 
    $this->getOptions()->shouldBeArrayOrFalse(); 
} 

public function getMatchers() 
{ 
    return [ 
     'beArrayOrFalse' => function($subject, $value) { 
      return is_array($value) || $value === false; 
     }, 
    ]; 
} 
+0

Ahhhhhh! 당신은 하나의 급습에서 인라인 matchers가 어떻게 작동하는지 명확히했습니다. 정말 끝내주는 군. 죄송합니다. 내 코드가 포함되어 있어야합니다! 정말 고맙습니다! – alexleonard

+0

약간 수정해야했는데 그렇지 않으면 실패했습니다. 메소드에 변수를 할당하고이를 인라인 매처로 전달해야했습니다. 이것이 내가 한 일입니다. http://laravel.io/bin/9QrR - 다른 방법이 있습니까? – alexleonard

관련 문제