首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHPSpec/Prophecy中通过引用传递形式参数的存根

PHPSpec/Prophecy中通过引用传递形式参数的存根
EN

Stack Overflow用户
提问于 2014-02-06 11:18:07
回答 1查看 1.3K关注 0票数 2

我在PHP中有一个方法,如下所示:

代码语言:javascript
复制
<?php
class SomeClass
{
    public function isEntitledToDiscount(GuestModel $who, $onWhat, &$discountAmount = null)
    {
        $discountAmount = 10;
        return true;
    }
}

有办法在$discountAmount中存根PHPSpec吗?假设我有一个正在测试的类,并且通过构造函数注入了$someService。在我的规范中,我使用:

代码语言:javascript
复制
<?php
$someService->isEntitledToDiscount($guest, $ticket, $discountAmount)->willReturn(true);

它为方法返回值创建存根。如何使用$discountAmount形式参数来做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-09 22:15:02

方法不应该修改它的参数(不应该有副作用)。尤其是吸气式的方法。你应该重新考虑一下你的设计.

您的问题实际上与prohpecy有关,因此您可能需要阅读它的docs:https://github.com/phpspec/prophecy

预言(和PhpSpac) 使一些事情很难。在大多数情况下,这意味着您试图对您的设计做错误的选择。

您可以尝试以下方法,但我认为您不会获得对变量的引用:

代码语言:javascript
复制
$someService->isEntitledToDiscount($guest, $ticket, $discountAmount)
    ->will(function ($arguments) {
        // do your evil
    });

推荐阅读:命令查询分离

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21601404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档