2017-03-07 5 views
0

Ich habe ein neues Laravel 5.4 Projekt mit Authentifizierung erstellt.Akzeptanztest Methode besuchen undefined

Ich habe dann ein Feature-Test für den Login-Prozess erstellt, die als

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'); 
    } 

folgt, ist aber, wenn ich den Test ausführen ich

Fehler: Aufruf der undefinierten Methode Tests \ Eigenschaft \ Usertest: : visit()

nicht sicher, ob ich eine andere Komponente installieren muss. das ist, was meine composer.json wie

{ 
    "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

Haben Sie erweitert die '\ Illuminate \ Foundation \ Testing \ TestCase'? –

Antwort

10

Es gibt keine visit Einbau in standardmäßig in Laravel 5.4 Sie ausführen müssen get um Aktion zu laufen, aber bitte beachten Sie es nicht funktioniert gleich aussieht (wahrscheinlich werden keine Umleitungen vorgenommen).

Wenn Sie altes Verhalten verwenden möchten, können Sie für jetzt Laravel Browser-Kit verwenden;

composer require laravel/browser-kit-testing 

Sie können weitere Informationen in Migration lesen: https://laravel.com/docs/5.4/upgrade#upgrade-5.4.0

Als weitere Alternative Sie Laravel Dusk können vollständige Browser-Tests

+1

Ahh das erklärt es. Vielen Dank. – JaChNo

3

Option 1

Die visit und see laufen Methode funktioniert in Laravel 5.4 standardmäßig nicht mehr. Sie müssen Laravel Dusk Paket installieren.

composer require --dev laravel/dusk 

php artisan dusk:install 

So können Sie visit und assertSee Methode bzw. verwenden.

For more info refer to laravel documentation Laravel Dusk Documentation

Option 2

Manchmal haben Sie bereits geschrieben Testfälle und Sie nicht wollen, dann mit dem zu vermasseln nur dieses Paket installieren. Es erfordert minimale Konfiguration.

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

For more info refer Laravel Browserkit Testing