在PHP中使用_call()模拟类时出现分段错误
我试图模拟一个使用magic方法调用()的类 当我运行测试时,我得到了“分段错误” 它是一个非常简单的类,用于转发对其成员对象上的方法的调用。 我认为这与_call()的使用有关,因为当我删除它时,测试就通过了 我使用的是PHP5.3.3(CentOS 6.5)和PHPUnit4.6 参见代码:在PHP中使用_call()模拟类时出现分段错误,php,phpunit,mockery,Php,Phpunit,Mockery,我试图模拟一个使用magic方法调用()的类 当我运行测试时,我得到了“分段错误” 它是一个非常简单的类,用于转发对其成员对象上的方法的调用。 我认为这与_call()的使用有关,因为当我删除它时,测试就通过了 我使用的是PHP5.3.3(CentOS 6.5)和PHPUnit4.6 参见代码: <?php use Mockery as m; class HasRoleTest extends PHPUnit_Framework_TestCase { public functi
<?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';
}
}
在mockry1.0.0-alpha
之前,使用\u调用
magic方法的对象可能会导致无限递归,这反过来会导致PHP中的segfault
例如,见以下问题:
这似乎是一个错误,自mockry1.0.0-alpha
我在一个在线指南中读到使用\mockry作为m代码>带有反斜杠。但这可能无法解决你的问题,这只是我注意到的一件事