Laravel Dusk Sessions on

时间:2017-09-14 09:37:06

标签: laravel homestead laravel-dusk

我在流浪汉机器上设置了一个laravel 5.4项目,我试图在它上面创建Laravel Dusk测试。这有点棘手,我在这里按照教程:http://www.jesusamieiro.com/using-laravel-dusk-with-vagrant-homestead/

它运行正常,但会话变量似乎没有保存。我在后期路线中有这段代码

if (!session('user_name')) {
        $request->session()->flash("message", "Your session expired. Click "Please Confirm" to approve your monthly donation.");
        return redirect()->back();
    }

并在首次获取页面时在get请求中设置它。我在黄昏时有这个测试:

$browser->visit("http://support.welcome.dev/?layout_id={$layout}&purl={$supporter->purl}&user_name={$supporter->name_first}&amount=10&ct={$hash}")
                ->press("Please Confirm")
                ->assertPathIs("/confirm");

此测试失败,并在消息会话已过期时重定向。但是,当检查user_name变量的后期路由中的代码被注释掉时,它可以正常工作。当我在浏览器上手动测试时,原始代码可以正常工作。

感谢任何帮助。

1 个答案:

答案 0 :(得分:-1)

$user = factory(User::class)->create([
            'email' => 'taylor@laravel.com',
        ]);

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

此代码写在https://laravel.com/docs/5.4/dusk上。我认为这可以帮到你。 =)