前提・実現したいこと
laravel6.0でexceptionをテストするときに例外がキャッチできない状態です。
発生している問題・エラーメッセージ
1) Tests\Feature\ExampleTest::exception_test Failed asserting that exception of type "Exception" is thrown.
該当のソースコード
php
1<?php 2 3namespace Tests\Feature; 4 5use Exception; 6use Illuminate\Foundation\Testing\RefreshDatabase; 7use Tests\TestCase; 8 9class ExampleTest extends TestCase 10{ 11 use RefreshDatabase; 12 13 /** @test */ 14 public function exception_test() 15 { 16 $this->expectException(\Exception::class); 17 $this->get("/samples"); 18 } 19}
php
1<?php 2 3Route::get('/', function () { 4 return view('welcome'); 5}); 6 7Route::get('/samples', "SampleController@index");
php
1<?php 2 3namespace App\Http\Controllers; 4 5use Exception; 6use Illuminate\Http\Request; 7 8class SampleController extends Controller 9{ 10 11 public function index() 12 { 13 throw new \Exception("Error Processing Request"); 14 } 15}
試したこと
unitTestの場合は問題なくできました。
また、ブラウザからurlにアクセスしたときも例外自体は吐いています。
php
1class ExampleTest extends TestCase 2{ 3 use RefreshDatabase; 4 5 /** @test */ 6 public function exception_test() 7 { 8 $this->expectException(\Exception::class); 9 $this->get("/samples"); 10 11 throw new \Exception("Error Processing Request"); 12 } 13} 14
testになってないですが、test内で例外を吐かせるとtestは通ります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。