2017-05-05 4 views
1

Ich habe gerade begonnen, Mockery anstelle von PHPUnits eigenen spöttischen Funktionen zu verwenden.Mhallice Äquivalent von PHPUnits, returnValueMap

Hat Mockeric ein Äquivalent von PHPUnits returnValueMap, in dem es einen bestimmten Wert basierend auf bestimmten Argumentwerten zurückgeben kann, die dem Methodenaufruf bereitgestellt werden?

So wird es mit PHPUnit gemacht.

<?php 

$stub = $this->createMock(SomeClass::class); 

$map = [ 
    ['a', 'b', 'c', 'd'], 
    ['e', 'f', 'g', 'h'] 
]; 

$stub->method('doSomething') 
    ->will($this->returnValueMap($map)); 

$this->assertEquals('d', $stub->doSomething('a', 'b', 'c')); 
$this->assertEquals('h', $stub->doSomething('e', 'f', 'g')); 

Antwort

0

Meine Frage ist ein bisschen "Duh" Moment für mich. Dies ist das Äquivalent Mockery returnValueMap() in PHPUnit verwenden:

<?php 

$stub = \Mockery::mock(SomeClass::class); 

$stub->shouldReceive('doSomething')->with('a', 'b', 'c')->andReturn('d'); 
$stub->shouldReceive('doSomething')->with('e', 'f', 'g')->andReturn('h'); 

$this->assertEquals('d', $stub->doSomething('a', 'b', 'c')); 
$this->assertEquals('h', $stub->doSomething('e', 'f', 'g')); 

... duh.