我在PHP中有一个方法,如下所示:
<?php
class SomeClass
{
public function isEntitledToDiscount(GuestModel $who, $onWhat, &$discountAmount = null)
{
$discountAmount = 10;
return true;
}
}有办法在$discountAmount中存根PHPSpec吗?假设我有一个正在测试的类,并且通过构造函数注入了$someService。在我的规范中,我使用:
<?php
$someService->isEntitledToDiscount($guest, $ticket, $discountAmount)->willReturn(true);它为方法返回值创建存根。如何使用$discountAmount形式参数来做到这一点?
发布于 2014-02-09 22:15:02
方法不应该修改它的参数(不应该有副作用)。尤其是吸气式的方法。你应该重新考虑一下你的设计.
您的问题实际上与prohpecy有关,因此您可能需要阅读它的docs:https://github.com/phpspec/prophecy。
预言(和PhpSpac) 使一些事情很难。在大多数情况下,这意味着您试图对您的设计做错误的选择。
您可以尝试以下方法,但我认为您不会获得对变量的引用:
$someService->isEntitledToDiscount($guest, $ticket, $discountAmount)
->will(function ($arguments) {
// do your evil
});推荐阅读:命令查询分离。
https://stackoverflow.com/questions/21601404
复制相似问题