WithoutMiddlewareを使う場合の注意点

今回のお題

今回のお題は、テストコードのWithoutMiddlewareについてです。

復習〜WithoutMiddlewareとは

まずは、WithoutMiddelwareそのものについての復習です。

これは、Basic認証などのmiddlewareに設定されている認証機能をテスト中だけ無効化するために記述しました。

ですが、これにより本来は働いて欲しいmiddlewareの機能まで無効化されてしまう場合があります。

テスト中も働いて欲しいmiddleware機能の例

テスト中も働いて欲しいmiddleware機能の例は、Auth系のユーザー認証機能ですね。

これらはmiddlewareに定義されている部分もあるので、無効化してしまうとテストコードがうまくいかなくなります。

対策

この場合の対策は単純で、無効にするmiddlewareを指定してあげれば大丈夫です。

テストメソッド定義部分の

use WithoutMiddleware;

$this->WithoutMIddleware([BasicAuthMiddleware::class]);

に変更してください。

これで、Basic認証だけを無効にすることができました。