Я пытаюсь высмеять класс, который использует магический метод __call().ошибка сегментации при издевательских классах с __call() в PHP
Когда я запускаю тесты, я получил «Ошибка сегментирования Fault»
Это очень простой класс, который перенаправляет вызовы методов на своих объектах членов. Я думаю, что это связано с использованием __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';
}
}
Я читал в онлайн-руководстве, чтобы использовать '\ Mockery as m;' с обратной косой чертой. Это может не решить вашу проблему, но это просто вещь, которую я заметил – Phate01