Zhianc
Zhianc

Reputation: 1451

Mockery throw on first then return value on second call

$client = Mockery::mock();
$client->shouldReceive('send')->andThrow($error)->andReturn(true);

Unfortunately it only returns true but not throw the exception first. How do I throw an exception on first call then return value on second call of the method?

EDIT:

This works if I manually edit Mockery\Expectation.php and set $_throw = true.

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

Upvotes: 22

Views: 7016

Answers (1)

Robbo
Robbo

Reputation: 2116

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

Upvotes: 37

Related Questions