2016-07-09 34 views
12

Sono un principiante con il framework laravel 5.2Laravel - capire come funziona il test

Voglio capire come funziona il test dell'unità. Ho effettuato questo test:

public function testPageLogin() 
{ 
    $this->visit('/login') 
    ->see('Connexion'); 
} 

Quando eseguo la sceneggiatura: tutto va bene.

poi ho fatto questo test:

$this->visit('/login') 
    ->type('[email protected]', 'email') 
    ->type('toto', 'password') 
    ->check('souvenir') 
    ->press('Connexion') 
    ->seePageIs('/login'); 

Naturalmente esiste campi 'e-mail', 'password', 'ricordo' nella pagina html. E con questi valori, la pagina "login" deve essere visualizzata perché questi valori non sono noti nel DB.

Quando eseguo la sceneggiatura, ho un fallimento

Illuminate \ Contratti \ Container \ BindingResolutionException: Target [Illuminate \ Co ntracts \ Debug \ ExceptionHandler] non è istanziabili. in C: \ wamp \ www \ ecole \ vendor \ laravel \ Framework \ src \ Illuminate \ Container \ Container.php on line 748

Certo che devo fare qualcosa di sbagliato da qualche parte, ma non vedo dove. Qualsiasi aiuto sarà apprezzato. Merci.

Dominique

+0

Ho ancora il problema. La mia domanda non era abbastanza chiara? Non esitate ad avvertirmi è stato il caso. Grazie. – Dom

+0

Cosa stampa 'vendor/bin/phpunit --version'? – mpen

risposta

3

Questo è un bug noto entro laravel quando si utilizza una versione successiva di PHPUnit. Credo che questo errore non sia stato ancora risolto;

https://github.com/laravel/framework/issues/10808

Nel frattempo, ci sono alcune soluzioni al di sotto;

1) Invece di utilizzare il PHPUnit globale, utilizzare *project*/vendor/bin/phpunit.

2) Eseguire il downgrade della versione di PHPUnit in modo che Laravel sia compatibile con esso, per eseguire tale operazione, eseguire i comandi di seguito;

composer global remove phpunit/phpunit 
composer global require 'phpunit/phpunit=~4.0' 

Spero che questo aiuti.

+0

Grazie per l'informazione. Ho provato a rimuovere e installare phpunit 4.0, ma ho un problema a farlo. È sempre 4.8 che viene lanciato. Lavoro su Windows e faccio così per lanciare il mio test: php vendor/phpunit/phpunit/phpunit test/TestAuthentification.php – Dom

+0

@ user2672338 Scusa, non ho idea di Windows. Non sono sicuro se questo aiuti http://dustyreagan.com/downgrade-phpunit-3-6-to-3-5-15/#comment-2817 – JayIsTooCommon

+0

Il compositore ha problemi con il downgrade a versioni del pacchetto inferiori. Dovresti provare prima a cambiare manualmente la versione di 'phpunit' in' composer.json', rimuovendo la directory 'vendor /' e 'composer.lock', e poi eseguendo' installer install'. – Skysplit

Problemi correlati