2014-10-22 16 views
7

Sto provando a prendere in giro un oggetto che ottiene due chiamate alla stessa funzione ma con argomenti diversi. È abbastanza semplice restituire diversi valori di ritorno per più chiamate, ma non riesco a trovare da nessuna parte come farlo con la convalida dell'argomento.Mockery che specifica gli argomenti previsti per più chiamate

ho provato:

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

E

$this->eventDispatcher 
     ->shouldReceive('dispatch') 
     ->twice() 
     ->with(
      [Events::SELECT,\Mockery::type('\Not\Really\A\Namespace\Event')], 
      [Events::ACTIVITY,\Mockery::type('\Not\Really\A\Namespace\Event')] 
     ); 

Ma loro non lo fanno lavoro.

Dall'output di PHPUnit mi sembra di ottenere un array?

risposta

10

Bene che è stato veloce; P A quanto pare si può fare questo e funziona bene:

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