为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 Laravel Dusk 测试身份验证?

如何使用 Laravel Dusk 测试身份验证?

PHP
繁星coding 2021-11-26 16:09:50
我正在使用 Laravel Dusk 设置 e2e 测试,但在尝试弄清楚如何测试 Laravel 的身份验证时遇到了问题。我正在使用DatabaseMigrationstrait迁移数据库并用 1 条记录填充它(运行模拟用户的 setUp 方法)。我尝试使用该loginAs()方法与该特定用户登录,但它没有登录。我的AuthenticationTest.php档案  use DatabaseMigrations;    public function setUp(): void    {        parent::setUp();        factory('App\User')->create();    }    public function an_authenticated_user_will_see_an_account_button()    {        $this->browse(function (Browser $browser) {            $browser                ->loginAs(User::find(1))                ->visit('http://recipemanager.test/recipes')                ->assertSee('Account');        });    }我的 dusk routes|        | GET|HEAD | _dusk/login/{userId}/{guard?} |                  | Laravel\Dusk\Http\Controllers\UserController@login                     | web          ||        | GET|HEAD | _dusk/logout/{guard?}         |                  | Laravel\Dusk\Http\Controllers\UserController@logout                    | web          ||        | GET|HEAD | _dusk/user/{guard?}           |                  | Laravel\Dusk\Http\Controllers\UserController@user                      | web          |请注意,我没有接触任何控制器,与 Laravel Dusk 相关的文件!我没有将测试数据库用于我的测试,我知道这很糟糕,我进入它并不讨厌我。重现错误的步骤(您需要有 XAMPP):1.克隆 repo2. 切换到分支account2. 配置.env file匹配您的数据库3. 确保配置vhostsApache 文件和etc/hosts文件,以便您可以recipemanager.test作为主路由访问( 127.0.0.1 recipemanager.test)4.运行php artisan dusk错误: 1)Tests\Browser\AuthenticationTest::an_authenticated_user_will_see_an_account_buttonDid not see expected text [Account] within element [body].Failed asserting that false is true.
查看完整描述

1 回答

?
qq_笑_17

TA贡献1818条经验 获得超7个赞

我通过访问食谱解决了这个问题visit('/recipes')。问题出在环境文件中 -> APP_URL 设置为 localhost 并且 Dusk 试图访问 localhost:800/recipes。我通过断言完整的 URL 来检查


 $this->browse(function (Browser $browser) {

            $browser

                ->loginAs(User::find(1))

                ->visit('/recipes')

                ->assertUrlIs('http://recipemanager.test/recipes');

        });


Error: Actual URL [http://localhost/recipes] does not equal expected URL [http://recipemanager.test/recipes].

.env 文件


APP_URL=http://localhost

在我将 APP_URL 更改为http://recipemanager.test并访问后/recipes一切正常!


查看完整回答
反对 回复 2021-11-26
  • 1 回答
  • 0 关注
  • 156 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信