環境
Laravel6.20
Docker
解決したいこと
php artisan dusk tests/Browser/LoginTest.php --env=testing
を実行すると
Actual path [/login] does not equal expected path [/event].
となりエラーが出てきます。どうやらきちんとログインできていないみたいです。
LoginTest.php
LoginTest.php
1<?php 2 3namespace Tests\Browser; 4 5use App\User; 6use Illuminate\Support\Facades\Hash; 7use Laravel\Dusk\Browser; 8use Tests\DuskTestCase; 9use Illuminate\Foundation\Testing\RefreshDatabase; 10 11 12class LoginTest extends DuskTestCase 13{ 14 // use DatabaseMigrations; 15 use RefreshDatabase; 16 /** 17 * A Dusk test example. 18 * 19 * @return void 20 */ 21 public function testLogin() 22 { 23 $user = factory(User::class)->create(); 24 25 $this->browse(function (Browser $browser)use($user){ 26 $browser->visit('/login') 27 ->type('email',$user->email) 28 ->type('password',$user->password ) 29 ->press('ログインする') 30 ->assertPathIs('/event'); 31 }); 32 } 33 34}
UserFactory.php
<?php /** @var \Illuminate\Database\Eloquent\Factory $factory */ use App\User; use Faker\Generator as Faker; use Illuminate\Support\Str; /* |-------------------------------------------------------------------------- | Model Factories |-------------------------------------------------------------------------- | | This directory should contain each of the model factory definitions for | your application. Factories provide a convenient way to generate new | model instances for testing / seeding your application's database. | */ $factory->define(User::class, function (Faker $faker) { // static $password; return [ 'name' => $faker->name, 'email' => $faker->unique()->safeEmail, 'password' => $faker->password, 'email_verified_at' => $faker->dateTime(), ]; });
factoryでuserを予め作成し、その値でログインするという実装です。
やったこと
スクショでエラー部分を確認したところ、どうやらメールアドレスの値が正しくないようです。
userのバリデーション
$validatedData = $request->validate([ 'name' =>['required'], 'email' => ['required','unique:users'], 'password' => ['required','min:8'] ]);
わかる方よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/29 07:02
2020/11/29 08:30
2020/11/29 08:38