PHPUnitのreturnValueMap()を使用して、読み込み結果をスタブしてみようとしています。期待される結果が得られていませんが、同等のreturnCallback()はそれを行います。自分で調べたいのであればtest caseを利用可能にしました。PHPUnitのreturnValueMapが期待どおりの結果を出さない
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"
エンタープライズ::なぜ(returnValueMapしない
public function subscribe() {
echo 'Subscription ID: ';
var_dump($this->field('subscription_id'));
echo 'Name: ';
var_dump($this->field('name'));
}
をサブスクライブ)は動作しますか?私は何が欠けているのですか?
あなたは私の一日を保存しました!ありがとう! – haltabush
あなたはただ私を救っただけです**たくさんの頭痛。ありがとう。 PS:PHPUnitの多くの不具合は、公式の文書に含まれていないことは残念です。 –
ライフセーバー! '$ param'(キー)が整数である場合には、' null'が 'false'である必要がある場合もあります – esh