如何在 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);
}
如果您需要测试 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);
}