実現したいこと
特定のルーティングリダイレクトされるのかを単体テストで確認したい。
発生している問題・分からないこと
単体試験実施中にルーティンがないと結果が返されるが原因が不明だった。
エラーメッセージ
error
1Method Illuminate\Routing\Route::is does not exist.
該当のソースコード
laravel(feature)_単体テスト
1<?php 2 3namespace Tests\Feature; 4 5use Illuminate\Foundation\Testing\RefreshDatabase; 6use Illuminate\Foundation\Testing\WithFaker; 7use Tests\TestCase; 8use App\Models\User; 9use App\Repositories\ProjectInfoRepository; 10// プロジェクトのデータを準備 11use App\Models\Project; 12use Illuminate\Http\Request; 13 14class UserControllerTest extends TestCase 15{ 16 // ログインしていなくてもアクセスできるか確認 17 public function test_Index() 18 { 19 $this->withoutExceptionHandling(); 20 //ログイン認証 21 $user = User::find(1); 22 // $response = $this->get(route('user.login')); OKだった。 23 $response = $this->actingAs($user) 24 ->get(route('user.index')); 25 // $response = $this->get(route('user.index')); 26 $response->assertOK(); 27 } 28 29}
laravel(Route)
1<?php 2 3use Illuminate\Support\Facades\Route; 4use App\Http\Controllers\UserController; 5 6/* 7|-------------------------------------------------------------------------- 8| Web Routes 9|-------------------------------------------------------------------------- 10| 11| Here is where you can register web routes for your application. These 12| routes are loaded by the RouteServiceProvider within a group which 13| contains the "web" middleware group. Now create something great! 14| 15*/ 16 17Route::prefix('user')-> middleware('auth:users')->group(function(){ 18 // プロジェクト一覧画面 19 Route::get('index', [UserController::class, 'index'])->name('index'); 20 // 検索機能 21 Route::get('searchProject', [UserController::class, 'searchProject'])->name('searchProject'); 22 // プロジェクト登録画面 23 Route::get('create', [UserController::class, 'create'])->name('create'); 24 Route::post('store', [UserController::class, 'store'])->name('store'); 25 // プロジェクト詳細画面 26 Route::get('show/{id}', [UserController::class, 'show'])->name('show'); 27 // プロジェクト編集画面 28 Route::get('edit/{id}', [UserController::class, 'edit'])->name('edit'); 29 Route::put('update/{id}', [UserController::class, 'update'])->name('update'); 30 //削除機能 31 Route::get('destroy/{id}', [UserController::class, 'destroy'])->name('destroy'); 32}); 33 34Route::get('/dashboard', function () { 35 return view('dashboard'); 36})->middleware(['auth:users'])->name('dashboard'); 37 38require __DIR__.'/auth.php';
試したこと・調べたこと
上記の詳細・結果
試したこと
・特定のactingAs関数でユーザーを指定してみた。
・他の可能なルーティングで試した。
→laravel Breezのログイン画面は通った。
補足
URLは以下です。
http://localhost/user/index
0 コメント