2014-10-22 4 views
7

Я пытаюсь издеваться над объектом, который получает два вызова одной и той же функции, но с разными аргументами. Довольно просто вернуть разные возвращаемые значения для нескольких вызовов, но я не могу найти нигде, как это сделать с помощью проверки аргумента.Mockery, определяющий ожидаемые аргументы для нескольких вызовов

Я пробовал:

$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 мне кажется, что я получаю массив?

ответ

10

Ну это было быстро, 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'); 
Смежные вопросы