ReturnValueMap PHPUnit не дает ожидаемых результатовPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 ReturnValueMap PHPUnit не дает ожидаемых результатов

Сообщение Anonymous »

Я пытаюсь использовать returnValueMap() PHPUnit, чтобы заглушить результаты чтения. Это не дает ожидаемых результатов, но эквивалентный returnCallback() дает. Я предоставил свой тестовый пример, если вы захотите проверить его самостоятельно.

returnValueMap()

Код: Выделить всё

$enterprise = $this->getMock('Enterprise', array('field'));
$enterprise->expects($this->any())
->method('field')
->will($this->returnValueMap(array(
array('subscription_id', null),
array('name', 'Monday Farms')
)));
$enterprise->subscribe('basic');
Результаты:

Код: Выделить всё

Subscription ID: NULL
Name: NULL
returnCallback()

Код: Выделить всё

$enterprise = $this->getMock('Enterprise', array('field'));
$enterprise->expects($this->any())
->method('field')
->will($this->returnCallback(function ($arg) {
$map = array(
'subscription_id' => null,
'name' => 'Monday Farms'
);
return $map[$arg];
}));
$enterprise->subscribe('basic');
Результаты:

Код: Выделить всё

Subscription ID: NULL
Name: string(12) "Monday Farms"
Enterprise::подписаться

Код: Выделить всё

public function subscribe() {
echo 'Subscription ID: ';
var_dump($this->field('subscription_id'));
echo 'Name: ';
var_dump($this->field('name'));
}
Почему returnValueMap() не работает так, как я ожидал? Что именно мне не хватает?

Подробнее здесь: https://stackoverflow.com/questions/127 ... ed-results
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»