在PHP中使用__call()模拟类时出现分段错误

时间:2015-01-13 15:44:42

标签: php phpunit mockery

我试图模拟一个使用魔法__call()的类。

当我运行测试时,我得到了#34;分段错误错误"

它是一个非常简单的类,可以调用其成员对象上的方法。 我认为这与使用__call()有关,因为当我删除它时测试通过。

我使用PHP 5.3.3(CentOS 6.5)和PHPunit 4.6

参见代码:

<?php

use Mockery as m;

class HasRoleTest extends PHPUnit_Framework_TestCase
{
    public function tearDown()
    {
        m::close();
    }

    function testFoo()
    {
        $foo = m::mock('Foo')->makePartial();
        $this->assertEquals('bar', $foo->bar());
    }
}

class Foo
{
    public function __call($name, $arguments)
    {
        if ($name == 'bar')
            return 'bar';

        return 'something else';
    }
}

0 个答案:

没有答案