如何在 PHPUnit 测试中 "mock" Sentry 客户端

How to "mock" Sentry client in the PHPUnit tests

如果您需要测试 PHP 应用程序错误处理程序,则必须 "mock" 或仅在 Sentry 客户端中禁用在远程服务器上发送错误。正确的做法是什么?

这是 Laravel 的示例,但这种方法适用于任何框架。

use Sentry\Client;
use Sentry\EventFactory;
use Sentry\Options;
use Sentry\Serializer\RepresentationSerializer;
use Sentry\Serializer\Serializer;
use Sentry\Transport\NullTransport;

private function mockSentry(): void
{
    /** @var \Sentry\State\Hub $sentry */
    $sentry = $this->app['sentry']; // Get sentry object from Laravel's container

    $client = new Client(
        new Options(),
        new NullTransport(),
        new EventFactory(
            new Serializer(new Options()),
            new RepresentationSerializer(new Options()),
            new Options(),
            '1',
            '1',
        ),
    );
    $sentry->bindClient($client);
}