Я пытаюсь смоделировать объект, который получает два вызова одной и той же функции, но с разными аргументами. Довольно просто вернуть разные возвращаемые значения для нескольких вызовов, но я нигде не могу найти, как это сделать с проверкой аргументов.
Я старался:
$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');
Других решений пока нет …