laravelの写真投稿アプリを作れるサイトを見ながら、ログイン、ログアウト処理などを実装しているのですが、
現在のユーザー(認証済)を返す処理のところで詰まっており、困っております。
下記テスト
UserApiTest
1<?php 2 3namespace Tests\Feature; 4 5use App\User; 6use Tests\TestCase; 7use Illuminate\Foundation\Testing\WithFaker; 8use Illuminate\Foundation\Testing\RefreshDatabase; 9 10class UserApiTest extends TestCase 11{ 12 use RefreshDatabase; 13 14 public function setUp(): void 15 { 16 parent::setUp(); 17 18 // テストユーザー作成 19 $this->user = factory(User::class)->create(); 20 } 21 22 /** 23 * @test 24 */ 25 public function should_ログイン中のユーザーを返却する() 26 { 27 $response = $this->actingAs($this->user)->json('GET', route('user')); 28 29 $response 30 ->assertStatus(200) 31 ->assertJson([ 32 'name' => $this->user->name, 33 ]); 34 } 35} 36
下記api.php
api
1<?php 2 3use Illuminate\Http\Request; 4use Illuminate\Support\Facades\Route; 5use Illuminate\Support\Facades\Auth; 6 7/* 8|-------------------------------------------------------------------------- 9| API Routes 10|-------------------------------------------------------------------------- 11| 12| Here is where you can register API routes for your application. These 13| routes are loaded by the RouteServiceProvider within a group which 14| is assigned the "api" middleware group. Enjoy building your API! 15| 16*/ 17 18Route::middleware('auth:api')->get('/user', function (Request $request) { 19 return $request->user(); 20}); 21 22Route::get('/user', function(){ 23 Auth::user(); 24})->name('user'); 25 26
./vendor/bin/phpunit --testdox
でテストを実行すると、
下記エラーが発生します。
User Api (Tests\Feature\UserApi) ✘ Should ログイン中のユーザーを返却する ┐ ├ Invalid JSON was returned from the route. │ ╵ /var/www/html/vuesplash/vendor/laravel/framework/src/Illuminate/Testing/TestResponse.php:822 ╵ /var/www/html/vuesplash/vendor/laravel/framework/src/Illuminate/Testing/TestResponse.php:495 ╵ /var/www/html/vuesplash/tests/Feature/UserApiTest.php:40 ┴ FAILURES! Tests: 7, Assertions: 15, Failures: 1.
print_r($response)
などで中身を確認すると、確かにjsonの中にuserの情報がありませんでした。
なのでおそらく、ルーティングの部分での処理が間違っているのか?と思っておりますが、どこを参考にすれば良いか困っております。
参考にしているサイトでは上記の記述で処理ができているようで尚更混乱しております。
参考になるサイトなど教えていただけたら幸いです。
ご確認よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー