2017-03-07 54 views
0

我已經創建了一個新的laravel 5.4項目進行驗證。驗收測試方法訪問undefined

我已經然後創建了登錄過程是如下

public function test_login() 
    { 
    $user = factory(\App\User::class)->make(); 
    $user->save(); 
    $this->visit('/login') 
    ->type($user->email,'email') 
    ->type($user->password,'password') 
    ->press('login');; 
    $this->seePageIs('/dashboard'); 
    } 

但是當我運行測試,我得到

錯誤功能測試:調用未定義的方法測試\功能\ UserTest: :visit()

不知道是否需要安裝另一個組件。這是我的composer.json是什麼樣子

{ 
    "name": "laravel/laravel", 
    "description": "The Laravel Framework.", 
    "keywords": ["framework", "laravel"], 
    "license": "MIT", 
    "type": "project", 
    "require": { 
     "php": ">=5.6.4", 
     "laravel/dusk": "^1.0", 
     "laravel/framework": "5.4.*", 
     "laravel/tinker": "~1.0" 
    }, 
    "require-dev": { 
     "fzaninotto/faker": "~1.4", 
     "mockery/mockery": "0.9.*", 
     "phpunit/phpunit": "~5.7" 

    }, 
    "autoload": { 
     "classmap": [ 
      "database" 
     ], 
     "psr-4": { 
      "App\\": "app/" 
     } 
    }, 
    "autoload-dev": { 
     "psr-4": { 
      "Tests\\": "tests/" 
     } 
    }, 
    "scripts": { 
     "post-root-package-install": [ 
      "php -r \"file_exists('.env') || copy('.env.example', '.env');\"" 
     ], 
     "post-create-project-cmd": [ 
      "php artisan key:generate" 
     ], 
     "post-install-cmd": [ 
      "Illuminate\\Foundation\\ComposerScripts::postInstall", 
      "php artisan optimize" 
     ], 
     "post-update-cmd": [ 
      "Illuminate\\Foundation\\ComposerScripts::postUpdate", 
      "php artisan optimize" 
     ] 
    }, 
    "config": { 
     "preferred-install": "dist", 
     "sort-packages": true 
    } 
} 
+0

你有延長的'\照亮\基金會\測試\ TestCase'? –

回答

10

沒有visit法內置默認的Laravel 5.4您需要才能運行操作運行get但請注意它不工作一樣(可能沒有重定向)。

如果你想使用舊的行爲,你可以使用現在的Laravel瀏覽器套件;

composer require laravel/browser-kit-testing 

您可以在遷移指南閱讀更多關於它:https://laravel.com/docs/5.4/upgrade#upgrade-5.4.0

作爲另一種選擇,你可以使用Laravel Dusk運行完整的瀏覽器測試

+1

啊,解釋它。謝謝。 – JaChNo

3

選項1

visitsee方法默認情況下不再適用於Laravel 5.4。您需要安裝Laravel Dusk軟件包。

composer require --dev laravel/dusk 

php artisan dusk:install 

所以,你可以分別使用visitassertSee方法。

For more info refer to laravel documentation Laravel Dusk Documentation

選項2

有時你已經編寫測試用例,你不想弄糟與然後就安裝該軟件包。它需要最少的配置。

composer require laravel/browser-kit-testing --dev 

For more info refer Laravel Browserkit Testing