我正在使用 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一切正常!
- 1 回答
- 0 關注
- 179 瀏覽
添加回答
舉報
0/150
提交
取消