Код: Выделить всё
protected function failedValidation(Validator $validator)
{
Log::channel('logistics')->info('Validation failed. Submitted serials:', [
'contents' => $this->input('contents'),
]);
...
Код: Выделить всё
Log::spy();
$this->postJson(
'logistics/delivery',
[
'location_id' => $location->uuid,
'contents' => [
$case1->serial,
],
]
)
->assertUnprocessable();
Log::shouldHaveReceived('info')
->withArgs(function ($message, $context) use($case1) {
$this->assertStringContainsString('Validation failed. Submitted serials:', $message);
$this->assertArrayHasKey('contents', $context);
$this->assertEquals([$case1->serial], $context['contents']);
return true;
});
Я использую Log::spy с Log::shouldHaveReceived вместо Log::shouldReceive, потому что там может быть могут быть и другие вызовы журналирования во время тестового запуска, и они создают двусмысленность, которой можно избежать с помощью spy.
Я также пробовал специально шпионить за каналом, используя Log::channel( 'логистика')->spy();, но этого не существует.
Если я удалю использование канала() как в коде, так и в протестируйте, все работает нормально.
Как это проверить?
Подробнее здесь: https://stackoverflow.com/questions/790 ... h-channels