我正在尝试模拟一个对象,该对象获得对同一函数的两次调用但具有不同的参数。它很容易为多个调用返回不同的返回值,但我无法在任何地方找到如何使用参数验证来执行此操作。
我试过了:
$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给我看起来好像我得到一个数组?
答案 0 :(得分:15)
嗯,这很快; 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');