Я пытаюсь высмеять объект, который получает два вызова одной и той же функции, но с разными аргументами. Довольно просто вернуть разные возвращаемые значения для нескольких вызовов, но я не могу найти нигде, как это сделать с помощью проверки аргумента.
Я пытался:
$this->eventDispatcher ->shouldReceive('dispatch') ->twice() ->with(Events::SELECT,\Mockery::type('\Not\Really\A\Namespace\Event')) ->with(Events::ACTIVITY,\Mockery::type('\Not\Really\A\Namespace\Event');
А также
$this->eventDispatcher ->shouldReceive('dispatch') ->twice() ->with( [Events::SELECT,\Mockery::type('\Not\Really\A\Namespace\Event')], [Events::ACTIVITY,\Mockery::type('\Not\Really\A\Namespace\Event')] );
Но они не работают.
Из вывода PHPUnit мне кажется, что я получаю массив?
Хорошо, что было быстро; P Очевидно, вы можете это сделать, и все работает отлично:
$this->eventDispatcher ->shouldReceive('dispatch') ->with(Events::SELECT,\Mockery::type('\Not\Really\A\Namespace\Event')); $this->eventDispatcher ->shouldReceive('dispatch') ->with(Events::ACTIVITY,\Mockery::type('\Not\Really\A\Namespace\Event');