Поддельный эквивалент PHPUnits, returnValueMap

Я только начал использовать издевательство вместо 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

Решение

Мой вопрос для меня — немного «дух». Это насмешливый эквивалент использования returnValueMap() в PHPUnit:

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

… Дух.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector