У меня есть следующий класс:
public function MyClass
{
public static foo():string
{
// Some logic there
// This is a dummy value just for explaining the problem
return 'n123';
}
public static factory():MyClass
{
return new MyClass();
}
}
Также у меня есть следующий класс:
class MyClassConsumer
{
public function bar()
{
$myclass=MyClass:factory();
$myclass->foo();
}
}
В моем ClassConsumer
также, как рекомендовано, я провел следующий тест phpunit :
use PHPUnit\Framework\TestCase;
use Mockery;
use MyClassConsumer;
class TestMyClassConsumer extends TestCase
{
public function testBar()
{
$mockedFoo=Mockery:spy(MyClassConsumer::class);
$mockedFoo->shouldReceive('foo')->andReturn('n1111');
$mockedFactory=Mockery:mock('alias:'.MyClassConsumer::class);
$mockedFactory->shouldReceive('factory')->andReturn($mockedFoo);
$classConsumer=new ClassConsumer();
$classConsumer->bar();
$mockedFoo->shouldHaveReceived('foo');
}
}
Но как только я проверил его, я получил следующую ошибку:
There was 1 error:
1) TestMyClassConsumer::testBar
Mockery\Exception\RuntimeException: Could not load mock MyClassConsumer, class already exists
/var/www/html/vendor/mockery/mockery/library/Mockery/Container.php:226
/var/www/html/vendor/mockery/mockery/library/Mockery.php:118
/var/www/html/tests/TestMyClassConsumer.php:30
ERRORS!
Tests: 1, Assertions: 2, Errors: 1.
Вы знаете причину возникновения этой ошибки и как я могу ее исправить?