2014-10-22 13 views
7

Tôi đang cố gắng giả lập một đối tượng nhận hai cuộc gọi đến cùng một chức năng nhưng với các đối số khác nhau. Nó khá thẳng về phía trước để cung cấp cho các giá trị trả về khác nhau cho nhiều cuộc gọi nhưng tôi không thể tìm thấy bất cứ nơi nào làm thế nào để làm điều đó với xác nhận đối số.Mockery chỉ định đối số dự kiến ​​cho nhiều cuộc gọi

tôi đã cố gắng:

$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')] 
     ); 

Nhưng họ không làm việc.

Từ đầu ra PHPUnit cho tôi có vẻ như tôi đang nhận được một mảng?

Trả lời

10

Vâng đó là nhanh; P Rõ ràng bạn có thể làm điều này và nó hoạt động tốt:

$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'); 
Các vấn đề liên quan