Laravel ベースのプロジェクトで phpunit を実行すると、次のエラーが表示されます: ErrorException: Trying to get property of non-object
ただし、phpunit でのみ、ページは正常にレンダリングされます。
これは、エラーの原因であるブレード テンプレートのコード行です。
{{ $user->roles->first()->display_name }}
これを次の (醜い) コードに置き換えると、phpunit テストは正常に実行されます。
@php ($role = preg_replace('/[^a-z\d ]/i', '', $user->roles->pluck('display_name')) )
{{ $role }}
ロールはコントローラーに熱心にロードされます。
$users->load('roles');
なぜphpunitがこのエラーをスローするのか(そしてlaravelはスローしないのか)、これをより良い方法で解決する方法はありますか?
phpunit からのスタックトレース: https://paste.ee/p/dyMVs#