모의 외관이 테스트중인 컨트롤러에 의해 호출/실행되었다고 어떻게 주장 할 수 있습니까?
예를 들어 Queue
에 대한 다음과 같은 Mockery가 있습니다. 내 컨트롤러가 Queue::push()
과 관련이있는 내용을 반환하지 않으므로 Queue::push()
을 트리거했다고 주장 할 수 있습니까? 나는 내 컨트롤러에서 Queue::push()
을 주석 경우
Queue::shouldReceive('push')->once();
Queue::shouldReceive('connected')->once();
는 Queue::shouldReceive
에서 예외가 발생합니다 :
예외 \의 InvalidCountException조롱 \ Mockery_0_Illuminate_Queue_QueueManager에서 방법 푸시()가 정확히 1 번 호출하지만 호출해야 0 번.
모의 외관이 다음과 같이 작동한다고 단언하는 유일한 방법은 무엇입니까?
$queuepushran = false;
try {
Queue::shouldReceive('push')->once();
Queue::shouldReceive('connected')->once();
$queuepushran = true;
} catch (\Mockery\Exception\InvalidCountException $e) {
//Queue threw an exception
$queuepushran = false;
}
$this->assertTrue($queuepushran);
대기열 :: 푸시 실행이 내가 그 호출에서 원하는 단언 만하는 것은 아닙니다. Mockery가 예외를 던지면 나머지 내 주장이 실행되지 않습니까? PHPUnit의 ['stopOnFailure = "false"'] (https://phpunit.de/manual/current/en/textui.html) 옵션을 사용하여 모든 내 주장이 실행되는지 예외를 던지기를 제어하지 않겠습니까? –
그렇습니다.하지만 테스트가 실패로 끝나는 것이 가장 일반적이라고 말하고 싶습니다.이미 빨간색으로 바뀌었을 때 전체 테스트 스위트를 실행하는 데 시간을 낭비하지 않아도됩니다. – maknz