2014-10-22 7 views
7

के लिए अपेक्षित तर्क निर्दिष्ट करते हुए मैं एक ऑब्जेक्ट का नकल करने की कोशिश कर रहा हूं जो एक ही फ़ंक्शन पर दो कॉल प्राप्त करता है लेकिन विभिन्न तर्कों के साथ। एकाधिक कॉल के लिए अलग-अलग रिटर्न मान वापस देने के लिए यह बहुत सीधे आगे है लेकिन मुझे तर्क सत्यापन के साथ इसे कहीं भी नहीं किया जा सकता है।मॉकरी एकाधिक कॉल

मैंने कोशिश की:

$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

खैर कि तेजी से गया था, पी जाहिर है आप यह कर सकते हैं और यह सिर्फ ठीक काम करता है:

$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'); 
संबंधित मुद्दे