【问题标题】:How to mock a function that variable be passed by reference with PHPUnit?如何模拟通过 PHPUnit 引用传递变量的函数?
【发布时间】:2012-09-10 10:36:07
【问题描述】:

我的代码如下所示:

class A
{
    function foo(&$a, $b)
    {
        if ($a == 0) {
            return false;
        } else {
            $a = $b + 1;
            return true;
        }
    }
}

class B
{
    function foo1($a, $b)
    {
        $a = new A;
        $a->foo($a, $b);
        if ($a == 0) {
            return false;
        }
        echo $a;
        return true;
    }
}

我需要获取$a 的值。
如何模拟函数foo()

【问题讨论】:

标签: php mocking phpunit pass-by-reference


【解决方案1】:

PHPUnit clones the arguments 在将它们传递给模拟方法之前。原始参数没有变通方法,但对于对象,您可以add a non-public __clone method 阻止此行为。

【讨论】:

    猜你喜欢
    • 2019-07-30
    • 1970-01-01
    • 1970-01-01
    • 2010-11-02
    相关资源
    最近更新 更多