Posted at

【Laravel】Feature テストをする際に unique バリデーションの結果を Mock する

More than 1 year has passed since last update.

テストする際に次の記述を入れておくことで、DB アクセスを発生させずに unique バリデーションルールをパスすることができる。

$presenceVerifierMock = \Mockery::mock(\Illuminate\Validation\PresenceVerifierInterface::class);

$presenceVerifierMock->shouldReceive('getCount')
->andReturn(0);
$presenceVerifierMock->shouldReceive('setConnection');
\Validator::setPresenceVerifier($presenceVerifierMock);

3 行目を ->andReturn(1) に変えれば逆に unique バリデーションルールに引っかかるようになるはず(未確認)。