Mockery相当于PHPUnits,returnValueMap

时间:2017-05-05 22:48:30

标签: php unit-testing mocking mockery

我刚开始使用Mockery代替PHPUnits自己的模拟功能。

Mockery是否具有PHPUnits returnValueMap的等价物,它可以根据提供给方法调用的特定参数值返回特定值?

这是用PHPUnit完成的。​​

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

1 个答案:

答案 0 :(得分:0)

我的问题对我来说有点“呃”的时刻。这是Mockery等效于在PHPUnit中使用returnValueMap()

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

......呃。