2013-07-20 10 views
12
$client = Mockery::mock(); 
$client->shouldReceive('send')->andThrow($error)->andReturn(true); 

Niestety zwraca tylko wartość true, ale nie wyrzuca wyjątku. W jaki sposób mogę wyrzucić wyjątek podczas pierwszego połączenia, a następnie zwrócić wartość przy drugim wywołaniu metody?Karykat rzuca się na pierwszą, a następnie zwraca wartość przy drugim wywołaniu

EDIT:

To działa, jeśli ręcznie edytować Mockery\Expectation.php i ustawić $_throw = true.

$client->shouldReceive('send')->twice()->andReturn($error, true); 

Odpowiedz

21
$client->shouldReceive('send')->once()->andThrow($error); 
$client->shouldReceive('send')->once()->andReturn(true);