Laravelでテスト書くときにどうやるんだっけ?というときのメモです。

モック

Auth::user()->id

$mock = new User();
$mock->id = 999;
\Auth::shouldReceive('user')->andreturn($mock);

Auth::guard(‘admin’)->check()

$mock = \Mockery::mock('MyClass');
$mock->shouldReceive('check')->andreturn(true);
\Auth::shouldReceive('guard')->andreturn($mock);

例外をテストしたい

$this->expectException(\Exception::class);
// メッセージ確認 ※完全一致かと思ったけど部分一致だった
$this->expectExceptionMessage('例外でっせ。');
// 正規表現もある
$this->expectExceptionMessageMatches('/例外でっせ/');