Laravel Log Fake 2.0包用于断言/伪造记录/假日志
Laravel Log Fake发布了v2.0,支持Laravel 9和一个完全基于闭包的断言 API:
- Laravel 9 支持
- 重写日志断言 API
- 上下文支持 + 针对通道上下文的断言
- 检查功能 (dump, dd)
- 支持自定义消息
Log fake 包是确保通过测试断言发生关键日志记录的绝佳方式。
作为自述文件中的一个基本示例,您首先绑定LogFake实例,然后您可以断言日志记录:
LogFake::bind();
// Run test code
// Logging assertions
Log::assertLogged(fn (LogEntry $log) =>
$log->level === 'info'
&& $log->message === 'User logged in.'
&& $log->context === ['user_id' => 5]
);
v2.0 中的新功能还有在测试期间调试日志消息的dd()和dump()助手:
Log::dump();
// array:1 [
// 0 => array:4 [
// "level" => "info"
// "message" => "User logged in."
// "context" => []
// "channel" => "stack"
// ]
// ]
Log::channel('slack')->dump();
Log::dumpAll();
Log::dd();
Log::ddAll();
您还可以使用各种logs()帮助程序检查日志记录并围绕它们编写断言:
$logs = Log::allLogs();
assert($logs->count() === 2);
$logs = Log::allLogs();
assert($logs->count() === 2);
最后,与Laravel 9.12 的per-channel logging context API 一起,
Log Fake 包还可以断言 context:
Log::assertCurrentContext(
fn (array $context) => $context['app'] === 'Acme CRM')
);
请务必检查可用的断言以查看可用的完整日志断言 API。
您可以了解有关此软件包的更多信息,获取完整的安装说明,并在 GitHub 上查看源代码。
https://github.com/timacdonald/log-fake#available-assertions
https://github.com/timacdonald/log-fake
https://laravel-news.com/laravel-9-12-0
相关文章