🤡
Laravelのファサードでパーシャルモックを使う
はじめに
ふと、テストを書いていた時に無理やり例外を発生させてcatch後の処理のテストを書いたいと思った時に試したことのメモです。
環境
- PHP 8.2.10
- Laravel 10.23.0
- Mockery 1.6.6
試したこと
つぎのように書くだけです。
use Exception;
use Illuminate\Support\Facades\DB;
DB::shouldReceive('commit')->andThrow(new Exception('例外'));
DB::makePartial();
LaravelのファサードはshouldReceive
メソッドを使うと引数に指定したメソッドをモックにできます。
そのあとで、makePartial
メソッド使うことでshouldReceive
メソッドで指定したメソッド以外は通常通りの呼び出しで動いてくれます。
参考
Discussion