Я закончил со следующим решением:
- в моей папке
tests
я создал пустой "физический" класс:
<?php
namespace Tests\Helpers;
class EmptyCallableClass
{
public function __invoke()
{
}
}
- тогда в моих тестах я могу смоделировать это как все другие классы (пример из Laravel):
<?php
namespace Tests\Unit;
use PHPUnit\Framework\MockObject\MockObject;
use Tests\Helpers\EmptyCallableClass;
use Tests\TestCase;
class LravelMiddlewareTest extends TestCase
{
/**
* @var MockObject
*/
private $closureMock;
public function setUp(): void
{
$this->closureMock = $this->createPartialMock(EmptyCallableClass::class, ['__invoke']);
}
}