Laravel Log Fake 2.0包用于断言/伪造记录/假日志

2023-06-01 00:00:00 断言 伪造 假日

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

相关文章