Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dask用户身份验证会话在Laravel 5.6中的测试类中跨测试方法共享_Laravel_Laravel 5_Laravel Dusk - Fatal编程技术网

Dask用户身份验证会话在Laravel 5.6中的测试类中跨测试方法共享

Dask用户身份验证会话在Laravel 5.6中的测试类中跨测试方法共享,laravel,laravel-5,laravel-dusk,Laravel,Laravel 5,Laravel Dusk,所以我在一个测试类中有多个方法 在第一种方法中,创建的工厂用户进入login,填写登录凭据和assertPathis(“/home”)。这个方法运行起来没有任何问题 public function test_user_should_see_home() { $user = factory(User::class)->create([ 'name' => 'first', 'email' => 'abc@g

所以我在一个测试类中有多个方法

在第一种方法中,创建的工厂用户进入login,填写登录凭据和assertPathis(“/home”)。这个方法运行起来没有任何问题

public function test_user_should_see_home()
    {

        $user = factory(User::class)->create([
            'name' => 'first',
            'email' => 'abc@gmail.com',

        ]);


        $this->browse(function ($browser) use($user){
            $browser->visit('/login')
                    ->type('email', $user->email)
                    ->type('password', 'secret')
                    ->press('Login')
                    ->assertPathIs('/home');
        });

    }
在第二种方法中,再次创建工厂用户,然后进入登录并填写凭据并进行一些断言

public function test_user_should_see_login()
    {

        $user = factory(User::class)->create([
            'name' => 'second',
            'email' => 'abcd@gmail.com',
        ]);

        $this->browse(function ($browser) use($user){
            $browser->visit('/login')
                    ->assertPathIs('/login');
        });
    }
但第二种方法失败,错误如下:

Unable to locate element: {"method":"css selector","selector":"body textarea[name='email']"}
我查看了屏幕截图错误,它显示用户在主页上,由于登录用户无法登录,测试失败


那么,我怎样才能使dusk将每个方法作为一个单独的测试来对待,而不是在不同的方法之间共享会话呢?

使用此选项删除测试之间的cookie:

受保护的功能设置(){
父::设置();
foreach(静态::$browsers作为$browser){
$browser->driver->manage()->deleteAllCookies();
}
}

您能就答案给出反馈吗?